Update

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Update

Rowset nicht Resultset

von fichte.buche » Fr, 26.08.2005 10:09

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

von ArneS » Di, 02.08.2005 14:59

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

Ergänzung / Änderung

von moritz » Di, 31.05.2005 23:07

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

Update

von moritz » Mo, 30.05.2005 08:14

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

Nach oben