Hallo,
OO 1.1.4, WinXP, MySQL auf Suse.
Der folgende Code führt zu einem OO- Absturz. Mit Biblio funktioniert er aber. Mit einem Formular mit eingefügter Datenbanktabelle kann ich die Daten in der MySQL- Tabelle editieren. Die Datenbank müßte also richtig in OO eingebunden sein. Hat jemand einen Tip zum Editieren der Datenbank mit Starbasic?
Moritz
Sub DBUpdateTest
Dim DatenbankKontext as Object
Dim Datenquelle as Object
Dim Verbindung as Object
Dim Statement as Object
Dim Resultset as Object
DatenbankKontext = createUnoService("com.sun.star.sdb.DatabaseContext")
Datenquelle = DatenbankKontext.getByName("MYSQLAdressen") 'Bibliography")
Verbindung = Datenquelle.getConnection( "", "" )
Statement = Verbindung.createStatement()
Statement.ResultSetConcurrency = 1008
Resultset = Statement.executeQuery("SELECT * FROM Adresse_Lang Where Name='Wutz'") 'biblio")
Resultset.next()
Resultset.updateString (2, "Moritz")
'Hier kommt der Absturz
Resultset.updateRow()
msgbox Resultset.getString (2)
Resultset.close()
Statement.close()
Verbindung.close()
End Sub
Update
Moderator: Moderatoren
Ergänzung / Änderung
Inzwischen habe ich den MySQL- Treiber aktualisiert. Mit einem im Autopiloten eingerichteten Datenbankformular funktioniert nach wie vor alles einwandfrei. Ich kann Datensätze ändern, einfügen usw.
Mit Starbasic kann ich Datensätze der MySQL- Datenbank lesen, aber nicht updaten.
Bei Resultset.updateString (2, "Test") kommt jetzt die Fehlermeldung "Basic-Laufzeitfehler
Es ist eine Exception aufgetreten.
Type: com.sun.star.sdbc.SQLException
Message:Function sequence error"
Es ist auffälling, daß ich Statement.ResultSetConcurrency = 1008 nicht setzen kann. es bleibt bei 1007.
Im Datenbankformular "com.sun.star.comp.forms.ODatabaseForm": ist ResultSetConcurrency automatisch korrekt auf 1008 gesetzt.
Was kann die Ursache für dieses Problem sein?
Moritz
Mit Starbasic kann ich Datensätze der MySQL- Datenbank lesen, aber nicht updaten.
Bei Resultset.updateString (2, "Test") kommt jetzt die Fehlermeldung "Basic-Laufzeitfehler
Es ist eine Exception aufgetreten.
Type: com.sun.star.sdbc.SQLException
Message:Function sequence error"
Es ist auffälling, daß ich Statement.ResultSetConcurrency = 1008 nicht setzen kann. es bleibt bei 1007.
Im Datenbankformular "com.sun.star.comp.forms.ODatabaseForm": ist ResultSetConcurrency automatisch korrekt auf 1008 gesetzt.
Was kann die Ursache für dieses Problem sein?
Moritz
Hallo Moritz.
Ich bin neugierig ob Du ne Lösung gefunden hast, denn ich hab das gleiche Problem. Bei einem alten Mysql Treiber stürzte OO einfach ab, bei ´nem neune Treiber kommt Dein beschriebener Fehler.
Ich wollte nach möglichkeit nicht mit einer insert -SQL Anweisung arbeiten.
Bin gespannt.
Arne
Ich bin neugierig ob Du ne Lösung gefunden hast, denn ich hab das gleiche Problem. Bei einem alten Mysql Treiber stürzte OO einfach ab, bei ´nem neune Treiber kommt Dein beschriebener Fehler.
Ich wollte nach möglichkeit nicht mit einer insert -SQL Anweisung arbeiten.
Bin gespannt.
Arne
-
- ***
- Beiträge: 55
- Registriert: Di, 29.03.2005 12:38
Rowset nicht Resultset
Hallo,
Ich hab über Maillisten micht durchgefragt und folgende Lösung bekkommen.
Sub Main
Dim rowset as Object
rowset = createUnoService("com.sun.star.sdb.RowSet")
rowset.DataSourceName = "MySql fs-1"
rowset.CommandType = 0
rowset.Command = "bugs.album"
rowset.execute()
rowset.next()
rowset.updateString (4, "Test2")
rowset.updateRow()
msgbox rowset.getString (4)
rowset.dispose()
End Sub
Sonst kann man noch einiges unter
http://api.openoffice.org/docs/Develope ... tabase.htm
oder
http://api.openoffice.org/docs/common/r ... owSet.html
finden.
Leider in Englisch
Viele Grüße
Fichte.buche
Ich hab über Maillisten micht durchgefragt und folgende Lösung bekkommen.
Sub Main
Dim rowset as Object
rowset = createUnoService("com.sun.star.sdb.RowSet")
rowset.DataSourceName = "MySql fs-1"
rowset.CommandType = 0
rowset.Command = "bugs.album"
rowset.execute()
rowset.next()
rowset.updateString (4, "Test2")
rowset.updateRow()
msgbox rowset.getString (4)
rowset.dispose()
End Sub
Sonst kann man noch einiges unter
http://api.openoffice.org/docs/Develope ... tabase.htm
oder
http://api.openoffice.org/docs/common/r ... owSet.html
finden.
Leider in Englisch
Viele Grüße
Fichte.buche