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]

Antwort per Email an