Ich habe die folgende Subroutine in einer klassischen ASP-Klasse, die die ADO UPDATE-Methode aufruft. Ich benutze meine SQL-Datenbank mit ODBC-Treiber 5.1.ASP-Fehler "Schlüsselspalte Informationen sind unzureichend oder falsch." Beim Aktualisieren von mySQL
Wenn ich die alle Subroutine ich folgende Fehlermeldung erhalten:
Microsoft Cursor Engine Fehler ‚80004005‘ Schlüsselspalteninformationen unzureichend oder falsch ist. Zu viele Zeilen waren vom Update betroffen.
Public Sub Update(table,id_field,id,fields,values)
Dim yy
Dim strQuery
Dim strFields
Const adOpenDynamic = 2
Const adLockOptimistic = 3
Const adCmdText = 1
strQuery = ""
For yy = LBound(fields) to UBound(fields)
strQuery = strQuery & fields(yy) & ", "
Next
strQuery = Left(strQuery, Len(strQuery) - 2)
strQuery = "select " & strQuery & " from " & table & " where " & id_field & "=" & id
i_objRS.CursorLocation = 3
i_objRS.Open strQuery, i_objDataConn, adOpenDynamic, adLockOptimistic, adCmdText
For yy = 0 To UBound(fields)
i_objRS(fields(yy)) = values(yy)
Next
i_objRS.Update
i_objRS.Close
End Sub
Ich habe versucht, die Eigenschaft Cursor und die offenen Parameter zu ändern, aber es immer noch nicht arbeiten bekommen. Die Tabelle, die ich aktualisiere, hat eine eindeutige Auto-ID, die der Primärschlüssel ist.
Wenn ich das Befehlsobjekt verwende, funktioniert es gut. Ich bleibe nur für eine Weile dabei. –