Datenbankzugriff mit Python-Makro
Verfasst: Mo 11. Mär 2019, 13:48
Was mit Basic so einfach ist, so schwer tue ich mich mit Python:
Ich habe eine odb-Datei mit eingebetteter HSQLBD-Datenbank und möchte einen Bericht per Makro erstellen, denn mit dem eingebauten Berichte-Editor bin ich nicht zufrieden. Das in Basic geschriebene Makro läuft wie geschmiert. Ich öffne die odb-Datei, starte das Makro, das eine Verbindung aufbaut, falls sie noch nicht existiert, und ich kann eine Ansicht abfragen:
Ich möchte dies nun mit Python realisieren. Ich schaffe es nicht. Um den Aufbau zu verstehen, habe ich es mit biblioaccess.py (https://www.openoffice.org/udk/python/s ... oaccess.py) versucht, womit eine Verbindung zur internen Bibliography-DB erstellt werden soll. Schon der Start geht schief, Fehlermeldung:
Aber ich komme nicht weiter. Beim Inspizieren der im Code verwendeten Variablen "src" finde ich, dass der Service com.sun.star.sdb.DocumentDataSource unterstützt wird, aber src.dbg_properties, src.dbg_supportedInterfaces und src.dbg_methods laufen allesamt auf einen AttributeError.
iMac Mojave, LO 6.1.3.2
Leider habe ich darüber hinaus im Netz nichts gefunden, das mir weiterhelfen könnte. Wie muss ich vorgehen?
Schöne Grüße
Volker
Ich habe eine odb-Datei mit eingebetteter HSQLBD-Datenbank und möchte einen Bericht per Makro erstellen, denn mit dem eingebauten Berichte-Editor bin ich nicht zufrieden. Das in Basic geschriebene Makro läuft wie geschmiert. Ich öffne die odb-Datei, starte das Makro, das eine Verbindung aufbaut, falls sie noch nicht existiert, und ich kann eine Ansicht abfragen:
Code: Alles auswählen
oDatasource = ThisDatabaseDocument.CurrentController
If Not (oDatasource.isConnected()) Then oDatasource.connect()
oConnection = oDatasource.ActiveConnection()
...
oSqlStatement = oConnection.createStatement()
'usw.
Dann habe ich ExtractHSQL.py von https://forum.openoffice.org/en/forum/v ... 21&t=86071 installiert. Alles lief ordentlich durch. Als ich aber im Dateifenster auf die Tabellen zugreifen wollte, kam der Fehler:com.sun.star.connection.NoConnectException: Connector : couldn't connect to socket (Connection refused)
Der Fehler verschwindet, wenn ich den korrekten Pfad verwende: 'file:///Applications/LibreOffice.app/Contents/Resources/java/hsqldb.jar'.Die Verbindung zur Datenquelle "Lesebibliografie" konnte nicht hergestellt werden.
Die Treiberklasse 'org.hsqldb.jdbcDriver' konnte nicht geladen werden.Der Pfad für zusätzliche Treiberklassen ist 'file:///Applications/LibreOffice.app/Contents/Resources/../MacOS/classes/hsqldb.jar'.
Aber ich komme nicht weiter. Beim Inspizieren der im Code verwendeten Variablen "src" finde ich, dass der Service com.sun.star.sdb.DocumentDataSource unterstützt wird, aber src.dbg_properties, src.dbg_supportedInterfaces und src.dbg_methods laufen allesamt auf einen AttributeError.
iMac Mojave, LO 6.1.3.2
Leider habe ich darüber hinaus im Netz nichts gefunden, das mir weiterhelfen könnte. Wie muss ich vorgehen?
Schöne Grüße
Volker