Hallo,
Hallo TGD-Labor@gmx.at
> Ich hab' das Problem, dass sich teilweise Connections zu MySQL (per JDBC) nur dann
> schliessen wenn der LO-Desktop komplett geschlossen wird. Im Klartext: 2h nach
> Arbeitsbeginn steht der Server, da sich niemand mehr einloggen kann.
Wie erzeugst Du die Verbindung? Eigentlich doch mit dem Öffnen der
Datenbank. Die eine Datenbank öffnet eine Verbindung und doch nicht
gleich mehrere. Deswegen ist eigentlich auch nur getConnection notwendig.
Im konkreten Fall handelt es sich um ein Writer-Formular das eine Datenquelle hat, in den
Subformularen des Writerformulars wird aber auf weitere 6 bis 8 oder Datenbanken
zugegriffen. Die Subformulare haben zum Start noch keine Datasource, sonst wird gleich
beim Start auf die Daten zugegeriffen und das soll nicht vorkommen. Die Datenquelle wird
dann mittels
.DataSourceName = "Datenbankname"
.Command = "QL-Statement"
.Filter = "Filterstring"
den Subformularen zugewiesen, aber nur ein Mal (beim ersten Such-Aufruf). Man muss dabei nicht mit .getconnection() arbeiten,
da LO ja über den registrierten DB-Namen weiss wo die Daten liegen sollten. Irgendwie werden diese Verbindungen aber nicht immer
geschlossen.
Ich erzeuge per Makro nur dann eine Verbindung, wenn nicht bereits eine
besteht:
REM Datenbankverbindung erzeugen
oDatenquelle = ThisComponent.Parent.CurrentController
If NOT (oDatenquelle.isConnected()) Then
oDatenquelle.connect()
End If
oVerbindung = oDatenquelle.ActiveConnection()
>
> Ich möchte daher gezielt die Connections schliessen (z.B. beim Verlassen eines Dokuments)
> ohne dass LO komplett aus dem Speicher muss.
>
> Ich nehme mal an, dass ich mit .getConnections() Zugriff auf die Verbindungen habe. Kann
> mir jemand sagen wie ich das Objekt für die Methode .getConnections() aufrufen kann?
Ansonsten würde ich einmal an dieser Stelle suchen:
http://api.openoffice.org/docs/common/ref/com/sun/star/sdbc/module-ix.html
Danke, mit dem SDK hatte ich schon Folgendes gefunden:
http://api.openoffice.org/docs/common/ref/com/sun/star/lang/XConnectionPoint.html#getConnections
...das zugehörige Interface "XConnectionPoint" wird aber leider von keinem Service
unterstützt - und meine Programmierkenntnisse sind in diesem Fall leider endend.
g