von Colster » Mi, 06.02.2013 15:48
Hallo liebes Forum,
ich habe gestern einen Tag damit zugebracht, mit einem Recordset in eine Datenbank zu schreiben. Der Code ist ganz einfach:
Code: Alles auswählen
REM ***** BASIC *****
option explicit
Sub Main
Dim oDb as Object, oDC as Object, oRsStmt as Object, oRs as Object
Dim Stmt as String
Dim Nr as Long
oDC = createUnoService("com.sun.star.sdb.DatabaseContext")
oDb = oDC.getByName("Ctrl").getConnection("","")
oRsStmt = oDb.createStatement()
oRsStmt.ResultSetType = com.sun.star.sdbc.ResultSetType.SCROLL_SENSITIVE
oRsStmt.ResultSetConcurrency = com.sun.star.sdbc.ResultSetConcurrency.UPDATABLE
Stmt = "Select ""NR"",""SCHRITTID"" From ""SCHRITT"" where ""AUFGABENID"" = 1" _
+ " And ""NR"" >=1 And ""SCHRITTID"" <> 2 Order by ""NR"""
Nr = 0
oRs = oRsStmt.executeQuery(Stmt)
Nr = Nr + 1
do while oRs.Next
oRs.updateInt(1,Nr)
Nr = Nr + 1
oRs.updateRow()
Loop
oRs.Dispose
End Sub
Wenn ich mir die Eigenschaften von oRsStmt anschaue, nachdem die Properties gesetzt worden sind: Weder ResultSetType noch ResultSetConcurrency sind verändert worden. Von daher ist es logisch, dass sich das Recordset nicht updaten läßt (Fehler: The result set is read-only..)
Habe ich irgendwas übersehen, brauche ich ein aktuelleres OpenOffice? (Ich arbeite unter XP prof mit OO von Sun 3.1.0. Die Datenbank, die ich verwende, ist die eingebaute HSQL-Db und läßt über Formulare Änderungen zu.
Freue mich auf Antworten.
Colster
Hallo liebes Forum,
ich habe gestern einen Tag damit zugebracht, mit einem Recordset in eine Datenbank zu schreiben. Der Code ist ganz einfach:
[code]REM ***** BASIC *****
option explicit
Sub Main
Dim oDb as Object, oDC as Object, oRsStmt as Object, oRs as Object
Dim Stmt as String
Dim Nr as Long
oDC = createUnoService("com.sun.star.sdb.DatabaseContext")
oDb = oDC.getByName("Ctrl").getConnection("","")
oRsStmt = oDb.createStatement()
oRsStmt.ResultSetType = com.sun.star.sdbc.ResultSetType.SCROLL_SENSITIVE
oRsStmt.ResultSetConcurrency = com.sun.star.sdbc.ResultSetConcurrency.UPDATABLE
Stmt = "Select ""NR"",""SCHRITTID"" From ""SCHRITT"" where ""AUFGABENID"" = 1" _
+ " And ""NR"" >=1 And ""SCHRITTID"" <> 2 Order by ""NR"""
Nr = 0
oRs = oRsStmt.executeQuery(Stmt)
Nr = Nr + 1
do while oRs.Next
oRs.updateInt(1,Nr)
Nr = Nr + 1
oRs.updateRow()
Loop
oRs.Dispose
End Sub
[/code]
Wenn ich mir die Eigenschaften von oRsStmt anschaue, nachdem die Properties gesetzt worden sind: Weder ResultSetType noch ResultSetConcurrency sind verändert worden. Von daher ist es logisch, dass sich das Recordset nicht updaten läßt (Fehler: The result set is read-only..)
Habe ich irgendwas übersehen, brauche ich ein aktuelleres OpenOffice? (Ich arbeite unter XP prof mit OO von Sun 3.1.0. Die Datenbank, die ich verwende, ist die eingebaute HSQL-Db und läßt über Formulare Änderungen zu.
Freue mich auf Antworten.
Colster