Hallo,
Danke für deine Antwort.
Die Close-Methode ist mir natürlich bekannt und ich wäre sehr glücklich,
wenn ich diese einsetzen könnte. Da ich die Verbindung nicht im Makro
herstelle, kann ich sie auch nicht so einfach trennen.
Mein Makro formt lediglich eine DBase-Datei in ein Calc-Dokument um und
meldet dieses als Datenquelle im OO an.
Mehr macht es nicht.
Sobald ein Nutzer einen Serienbrief mit dieser Datenquelle, also dem
erstellten Calc-Dokument, erstellt wird automatisch von OO eine
Verbindung etabliert. NICHT von mir im Makro. In der Vorschau merkt der
Nutzer, dass die Calc-Datei nicht die Daten enthält die er braucht.
Nun stellt er durch ein externes Programm eine neue DBase-Datei bereit
mit den aktuellen Daten. Wenn jetzt mein Marko ausgeführt wird. Bekomme
ich immer eine Exception eben beim Aufruf des StoreAsURL().
Ich kann mir das nur dadruch erklären, dass eben die Verbindung zur
Datenquelle, dem veraqlteten Cacl-Dokument nocht offen ist.
Wenn ich mit
oConnection = oDatasource.getConnection("","")
arbeite, erstelle ich ja nur eine weitere Verbindung, welche dann mit
oConnection.Close
wieder geschlossen wird. Trotzdem bleibt aber die vom User erstellte
verbindung offen.
Ich brauche also irgendeinen Makrocode, mit dem ich bestehende
Verbindungen suchen kann. Wenn ich mal das Object oCennection richtig
beschrieben habe, kann ich die Verbindung natürlich mit Close() schließen.
Ich wäre wirklich froh, wenn mir da jemand helfen könnte.
Grüße
Max Manzenberger
Matthias Uhl schrieb:
Hallo Max,
erst mal vielen Dank für die Info mit dem Base Modul (das hab ich vorher
wohl irgendwie ignoriert).
Jetzt funktioniert mein Makro problemlos unter der Beta Version.
Vielleicht kann ich dir auch mit deinem Problem weiterhelfen. Ich stand
vor ähnlichen Schwierigkeiten.
Mein Makro legt für die Dauer des Zugriffs eine lokale Kopie der
Datenbank an und löscht sie später
wieder (ich greif nur lesend zu, deshalb kann ich das machen).
Das Löschen ist jedoch bei bestehender Verbindung auch nicht möglich.
Jetzt hab ich raus-
gekriegt, dass mein Problem darin lag, dass die Verbindung NICHT mit dem
Beenden des Makros
getrennt wird (auch nicht bei Version 1.1.4 und auch unabhängig vom
Häkchen bei "Verbindungen aufbewahren").
Ein Trennen der Verbindung wird jedoch innerhalb des Makros unter
Verwendung der Methode "Close" erreicht.
Bei mir sieht das folgendermaßen aus:
oDatabasecontext = createUnoService("com.sun.star.sdb.DatabaseContext")
oDatasource = oDatabasecontext.getByName("PCM-DATA")
oConnection = oDatasource.getConnection("","")
'Weiterer Programmcode
oConnection.Close
Erst nachdem die Verbindung mit "Close" getrennt wurde. Beginnt die
"Aufbewahrungszeit".
Ich musste die Aufbewahrung deaktivieren, damit ich ohne "wait" Befehl
meine lokale Kopie
löschen kann.
Ich hoffe, dass dies hilft dein Problem zu lösen.
Gruß Matthias
Max Manzenberger schrieb:
Hi,
Ja, das hab ich festgestellt. Ich bin mir immernoch nicht einhundert
prozentig sicher, ob Verbindungen gehalten werden, obwohl bei
"Verbindungen aufbewahren" kein Häckchen drin ist.
Mein Problem ist ein ganz anderes. Ich hab mich wohl falsch ausgedrückt.
Ich brauche eine Funktion mit dem ich in einem Makro geöffnete
Datenbankverbindungen aufstöbern kann.
Weil unsere Laute mit dBase-Dateien arbeiten. Diese werden von einem
externen Programm erstellt. Nun wird ein Serienbrief gedruckt und
damit auch eine Verbindung zur Datei hergestellt.
Der User stellt aber fest, dass die Datei veraltete Daten enthält und
will sie aktualisieren. Dazu muss mein Makro nochmal gestartet werden.
Dies setzt in der Datei ein bisschen was um. Aber OO läßt mich eben
nicht auf die geöffnete Datei zugreifen. Das ist mein Problem. Unter
Windows kannst du auch geöffnete Dateien nicht ändern. Daher häng ich
das OO nicht an.
..........................
Derweilen
Beste Grüße
Max Manzenberger
Matthias Uhl schrieb:
Hallo Liste
ich habe letztens unter OOo 1.1.4 ein Makro geschrieben, das auf eine
dbase Datenbank zugreift
und Datensatzinhalte in ein calc-Dokument einfügt.
Jetzt hab ich vor einigen Tagen in der Liste gelesen, dass es
Probleme bei der Freigabe der Datenbanken
für andere Nutzer gibt, da die Verbindungen gehalten werden; selbst
nachdem sie eigentlich geschlossen ist.
.........
Gruß Matthias
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]