Update

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

moritz
*****
Beiträge: 216
Registriert: Mi, 20.10.2004 20:54

Update

Beitrag von moritz »

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
moritz
*****
Beiträge: 216
Registriert: Mi, 20.10.2004 20:54

Ergänzung / Änderung

Beitrag von moritz »

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
ArneS
Beiträge: 5
Registriert: Di, 12.07.2005 10:06

Beitrag von ArneS »

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
fichte.buche
***
Beiträge: 55
Registriert: Di, 29.03.2005 12:38

Rowset nicht Resultset

Beitrag von fichte.buche »

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
Antworten