ich habe eine Datenbankdatei (*.odb) mit integrierter HSQLDB und nutze OOo 3.3.0.
Ich führe folgenden Code aus:
Code: Alles auswählen
Sub aufruf()
DB-Bearbeiten("Firmentabelle", "Firmenname")
End Sub
Sub DB-Bearbeiten(datenbank, feldbezeichner)
oDaten = createUnoService( "com.sun.star.sdb.DatabaseContext" )
DbName = ThisDatabaseDocument.DataSource.Name
oDatenquelle = oDaten.getByName(DbName)
oVerbindung = oDatenquelle.getConnection( "", "" )
oStatement = oVerbindung.createStatement()
oStatement.ResultSetType = com.sun.star.sdbc.ResultSetType.SCROLL_SENSITIVE
oStatement.ResultSetConcurrency = com.sun.star.sdbc.ResultSetConcurrency.UPDATABLE
oResultSet = oStatement.executeQuery("SELECT * FROM " & datenbank & " ORDER BY " & feldbezeichner & " ASC" )
Msgbox oResultSet.ResultSetConcurrency
oResultSet.first()
Do While Not oResultSet.isAfterLast
oResultSet.deleteRow()
oResultSet.next
Loop
End Sub
Die Rückgabe in der Messagebox ist dabei 1007, womit klar ist das das Resultset nur read only ist, weshalb auch beim Versuch ein Satz des Resultsets per:
Code: Alles auswählen
oResultSet.deleteRow()
erscheint.
Was ist das Problem?
Hinweis:
das adäquate Makro funktioniert mit einer Datenbank die auf eine DBase-Datenquelle verknüpft ist (ich benutze hierfür testweise die Bibliographie-Datenbank von OO) fehlerfrei.
Gruß
Stephan