In Datenbank schreiben

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

fichte.buche
***
Beiträge: 55
Registriert: Di, 29.03.2005 12:38

In Datenbank schreiben

Beitrag von fichte.buche »

Hallo,

Ich versuch gerade meine Datenbank die ich derzeit noch über die direkt d-Base Verbindung von OOo aus habe jetzt umzustellen auf ODBC mit d-Base Treiber, damit auch gleichzeitig auf die Datenbank zu gegriffen werden kann.
In der Datenbank ist das sonst kein Problem nur wenn ich über das Makro in eine Tabelle schreiben will funktioniert das nicht mehr.
Ich hab folgendes Makro:

Dim DatenbankKontext as Object
Dim Datenquelle as Object
Dim Verbindung as Object
Dim Statement as Object
Dim DBBestellArtikel as Object

DatenbankKontext = createUnoService("com.sun.star.sdb.DatabaseContext")
Datenquelle = DatenbankKontext.getByName("ODBC")
Verbindung = Datenquelle.getConnection( "", "" )
Statement = Verbindung.createStatement()
DBBestellArtikel = Statement.executeQuery("SELECT * FROM BestArt")

DBBestellArtikel.next
msgbox DBBestellArtikel.getString (4)

DBBestellArtikel.moveToInsertRow()
DBBestellArtikel.updateString (2, Codeakt)
DBBestellArtikel.updateString (4, Nameakt)
DBBestellArtikel.updateString (5, Unternameakt)
DBBestellArtikel.insertRow()

msgbox DBBestellArtikel.getString (4)

DBBestellArtikel.close()
Statement.close()
Verbindung.close()

In der ersten msgbox wir der richtig Wert angezeigt allerdings beim moveToInsertRow() kommt der Fehler:
BASIC-Laufzeitfehler.
Es ist eine Exception aufgetreten
Type: com.sun.star.sdbc.SQLException
Message: Function sequence error.

Stellt ich die Verbindung wieder auf eine direkte d-Base Verbindung in OOo -> Optionen um, dann funktioniert das Makro wieder.

Ich hab OOo2.0beta auf WinXP.

Bitte um Hilfe. Braucht ihr eventuell noch mehr Info?

DANKE
Baum
fichte.buche
***
Beiträge: 55
Registriert: Di, 29.03.2005 12:38

Hab noch was gefunden aber wie geht das

Beitrag von fichte.buche »

Hallo,

Möchte mich mal entschuldigen, daß ich so schnell geschrieben habe. Im Starbasic Programmierhandbuch set etwas von ResultSetConcurrency Updatable

Kann mir jemand sagen (schreiben) wie ich das in meinem Makro einfügen müßte um es ausprobieren zu können.

DANKE
Fichte.Buche
fichte.buche
***
Beiträge: 55
Registriert: Di, 29.03.2005 12:38

Nein ich habs leider noch nicht

Beitrag von fichte.buche »

Hallo Jovel,

Nein ich hab leider noch nicht herausgefunden. Muß aber dazusagen, daß ich nicht mehr dazugekommen bin mich damit zu beschäftigen. Schön langsam würde ich aber auch die Info brauchen.

Vielleicht schaut ja mal jemand im Forum vorbei, der uns helfen kann.

Schöne Grüße
vom
Baum
fichte.buche
***
Beiträge: 55
Registriert: Di, 29.03.2005 12:38

Ich glaub ich hab einen Teil gefunden

Beitrag von fichte.buche »

Hallo

Ich hab jetzt nochmals herumgesucht und folgendes gefunden
Nach dem erstellen des Statement muß man dieses auf Updatable umstellen.
Dies sollte dann so geschehen:

Statement = Verbindung.createStatement()
Statement.setPropertyValue("ResultSetConcurrency", 1008)
ResultSet = Statement.executeQuery ("SELECT ......

Bei mir kommt aber die Fehlermeldung
Message: [Microsoft][ODBC dBASE Driver]Optionales Feature wurde nicht implementiert.

Heißt das ich kann das mit einer ODBC - dBase Verbindung vergessen?
Was kann ich dann machen?

viele Grüße
Fichte.Buche
Antworten