PostgreSQL-Treiber: Fehler bei Datenbankverbindung
Verfasst: Mo, 16.05.2011 13:01
Betrifft: postgresql-sdbc-driver 0.7.6b (released 2010-08-12) für Windows,
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.)
2. Beispiel (funktioniert bei mir nicht!):
2. Beispiel (mein workaround - funktioniert):
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!
Hmmm - da staunt der Laie und der Fachmann wundert sich!
Grüße aus Dresden: ejomi
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