Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Datenbanktabelle ansprechen





Frage

Hallo, ich versuche vergebens ein Script aus einem ASP-Buch zum Laufen zu kriegen. Es geht um das Hinzufügen von Produkten zu einer Produkttabelle. Dafür habe ich genau wie im Buch beschrieben eine kleine Access-Datenbank angelegt und eine System-DSN erstellt. Die Produkttabelle in der Datenbank hat folgende Felder: product_id, product_name und product_price. Das Script lautet: <% Set Con = Server.CreateObject( "ADODB.Connection" ) Con.open "accessDSN" productName = "Gift Basket" productPrice = 34.54 sqlString = "INSERT INTO Products ( product_name, product_price ) " &_ "values ( '" & productName & "', " & productPrice & " )" Con.Execute sqlString Con.Close %> Als Fehlermeldung erscheint: Microsoft OLE DB Provider for ODBC Drivers-Fehler '80040e14' [Microsoft][ODBC Microsoft Access Driver] Anzahl der Abfragewerte und Zielfelder stimmt nicht überein. /testallgemein/asp/buchsteuer/page_53.asp, Zeile 9 Was ist denn damit gemeint? Es sind doch alle Felder im Script angegeben?

Antwort 1 von Cloud_X

Ist nur ein kleiner aber bedeutender Fehler!

Du hast zwei mal ' vergessen!

Falsch:
"', " & productPrice & " )"


Richtig:
"', '" & productPrice & "')"





<% 
Set Con = Server.CreateObject( "ADODB.Connection" )
Con.open "accessDSN"

productName = "Gift Basket"
productPrice = 34.54
sqlString = "INSERT INTO Products ( product_name, product_price ) " &_
"values ( '" & productName & "', '" & productPrice & "')"
Con.Execute sqlString
Con.Close
%>


Antwort 2 von cocokatz

Hallo Cloud X,

vielen Dank für Deinen Tipp.
Die beiden ' ' stehen im Buch-Script nicht, habe Sie trotzdem mal eingebaut. Leider hat sich nur die Fehlermeldung geändert: "Operation muss eine aktualisierbare Abfrage verwenden."
Das sagt mir leider auch nichts. Was ist damit gemeint?

Antwort 3 von Cloud_X

Habe es gerade mal bei mir getestet. Das Script funzt ganz normal....
Schick mir doch mal Deine DB per eMail (M-Biermann@web.de)

Antwort 4 von Cloud_X

Das mit "Operation muss eine aktualisierbare Abfrage verwenden" kann verschiedene Ursachen haben!

Es kann z.B. sein, dass die DB schreibgeschützt ist. Rechte Maustaste "schreibgeschützt" .....

Oder:
was wahrscheinlicher ist, dass der User für den anonymen Zugriff auf den Webserver keine Schreibberechtigung für die Datei hat!