ResultSet ist immer "read only" ?
Verfasst: Mi, 19.08.2009 16:36
Den ganzen Tag bin ich nun schon auf der Fehlersuche - leider vergebens.
In eine Tabelle möchte ich per Makro einen neuen Datensatz einfügen. Allerdings bekomme ich immer wieder die Fehlermeldung, dass das ResultSet nur "read only" ist.
Habe ich noch einen Fehler in meinem code?
(übrigens: Die Tabelle hat einen Primärschlüssel / ist wohl eine häufige Fehlerquelle)
MsgBox oDatVerb.isReadOnly gibt mir 'false' aus. Demnach müsste die Verbindung updatebar sein, oder?
oDatVerb.setReadOnly(false) gibt die Fehlermeldung: "This call is not allowed when sharing connections."
Mit dem direkten SQL-Befehl habe ich es auch schon versucht, aber da stimmt wohl die Syntax noch nicht (und außerdem würde ich die andere Variante bevorzugen):
Vielen Dank schon mal
In eine Tabelle möchte ich per Makro einen neuen Datensatz einfügen. Allerdings bekomme ich immer wieder die Fehlermeldung, dass das ResultSet nur "read only" ist.
Habe ich noch einen Fehler in meinem code?
(übrigens: Die Tabelle hat einen Primärschlüssel / ist wohl eine häufige Fehlerquelle)
Code: Alles auswählen
'''''''''''Verbindung zur Zieltabelle:
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
oDatenquelle = DatabaseContext.getByName("DB-Name")
If not oDatenquelle.IsPasswordRequired Then
oDatVerb = oDatenquelle.getConnection("","") '("Benutzername","Passwort")
else
oHandler = oDatenquelle.createUnoService("com.sun.star.sdb.InteractionHandler")
oDatVerb = oDatenquelle.ConnectWithCompletion(oHandler)
End If
oStatement = oDatVerb.createStatement()
'oStatement.setPropertyValue("ResultSetConcurrency", 1008) 'ein weiterer Versuch, die Tabelle updatebar zu machen
oStatement.ResultSetConcurrency = com.sun.star.sdbc.ResultSetConcurrency.UPDATABLE
oStatement.ResultSetType = com.sun.star.sdbc.ResultSetType.SCROLL_SENSITIVE
sSQL = "SELECT ""Zeitpunkt"", ... FROM ""LOGTabelle"" AS ""LOGTabelle"""
oErgSet = oStatement.executeQuery(sSQL)
'''''''''''Daten schreiben:
oErgSet.moveToInsertRow() 'neue Datensatz erstellen
oErgSet = UpdateTimeStamp(1, oTimeStamp)
...
oErgSet.insertRow() 'Datensatz speichern
End sub
oDatVerb.setReadOnly(false) gibt die Fehlermeldung: "This call is not allowed when sharing connections."
Mit dem direkten SQL-Befehl habe ich es auch schon versucht, aber da stimmt wohl die Syntax noch nicht (und außerdem würde ich die andere Variante bevorzugen):
Code: Alles auswählen
SQL_Befehl = "UPDATE "+CHR(34)+"LOG_Tabelle"+CHR(34)+" SET "+CHR(34)+"Spaltenname"+CHR(34)+" = '"+VariablenNameZumFüllenDesFeldes+"', "
oStatement.executeUpdate(SQL_Befehl)
Vielen Dank schon mal