OO-Basic unter OpenOffice.org V.3, BASE.
Kennt jemand die nachfolgend beschriebenen Probleme?
Ich habe dazu zwar ein workaround (siehe 3. Beispiel),
vielleicht mache ich aber auch nur eine Riesen-Fehler.
Kenn jemand eine "korrekte" Lösung??
Zur Klarstellung: Die manuell eingerichtete Verbindung von BASE zum Server
über die Datenbankeingenschaften mit Datenbanktyp "postgresql", Datenquellen-URL
und separat einzugebenen Benutzernamen/Kennwort funktioniert einwandfrei!
Das Problem (unter OO-Basic):
A. Die Einbindung aller Verbindungsparameter im URL-String funktioniert nicht.
B. Die Angabe der URL-Parameter über PropertyValue's funktioniert erst dann,
wenn man den Host-Namen und die Port-Nr. direkt in den Präfix-String
schreibt und nur Datenbankname, Benutzer sowie Passwort als Property übergibt.
1. Beispiel (funktioniert bei nicht!):
(In allen Beispielen stehen die Bezeichner "MYSERVER", "MYBASE", "MYNAME"
und "MYPASS" stellvertretend für den Namen des Datenbankservers,
dem Datenbanknamen, dem Benutzernamen und dem Anmeldekennwort des Benutzers.)
Code: Alles auswählen
DIM oConnection AS OBJECT
DIM oStatement AS OBJECT
oConnection = oDriverManager.getConnectionWithInfo( _
"sdbc:postgresql:host=MYSERVER port=5432 dbname=MYBASE user=MYNAME password=MYPASS")
oStatement = oConnection.createStatement()
Code: Alles auswählen
DIM oConnection AS OBJECT
DIM oStatement AS OBJECT
DIM mDBProperties(4) AS NEW com.sun.star.beans.PropertyValue
mDBProperties(0).name = "host"
mDBProperties(0).value = "MYSERVER"
mDBProperties(1).name = "port"
mDBProperties(1).value = "5432"
mDBProperties(2).name = "dbname"
mDBProperties(2).value = "MYBASE"
mDBProperties(3).name = "user"
mDBProperties(3).value = "MYNAME"
mDBProperties(4).name = "password"
mDBProperties(4).value = "MYPASS"
oConnection = oDriverManager.getConnectionWithInfo( _
"sdbc:postgresql", mDBProperties())
oStatement = oConnection.createStatement()
Host-Namen und Port-Nr. direkt in den Praefix-String und
nur Datenbankname, Benutzer und Passwort als Property:
Die Port-Nr. kann entfallen, keinesfalls aber der Host-Name,
sonst gibts auch bei der Methode Fehler!
Code: Alles auswählen
DIM oConnection AS OBJECT
DIM oStatement AS OBJECT
DIM mDBProperties(2) AS NEW com.sun.star.beans.PropertyValue
mDBProperties(0).name = "dbname"
mDBProperties(0).value = "MYBASE"
mDBProperties(1).name = "user"
mDBProperties(1).value = "MYNAME"
mDBProperties(2).name = "password"
mDBProperties(2).value = "MYPASS"
oConnection = oDriverManager.getConnectionWithInfo( _
"sdbc:postgresql:host=MYSERVER port=5432", mDBProperties())
oStatement = oConnection.createStatement()
Grüße aus Dresden: ejomi