Seite 2 von 2

Re: LiO Calc - stürzt nach längerer Makro-Laufzeit ab

Verfasst: Do, 24.01.2013 14:35
von Kappler
Das mit dem Dispose() habe ich jetzt in den Griff bekommen:
Das Dim als Deklaration nur an den Anfang und die RowSets nach Benutzung mit Dispose() freigeben.

Vor der Verwendung der RowSets erstelle ich sie mit

Code: Alles auswählen

createUnoService("com.sun.star.sdb.RowSet")
jeweils neu.
Das Programm läuft durch, am Speicherverbrauch ändert sich nichts...



Dann noch ein Versuch ohne das globale Datenbank-Objekt

Code: Alles auswählen

db = connect_to_database("Adimens")
...
Sql = "SELECT artikel, name, vbme FROM artikel where artikel = '" & Artikel & "'"
oArtikelRowSet = createUnoService("com.sun.star.sdb.RowSet")
oArtikelRowSet.activeConnection = db
oArtikelRowSet.Command = Sql
oArtikelRowSet.execute
stattdessen wird bei jedem Neuerstellen eines Rowsets das zugrundeliegende Datenbankobjekt neu erstellt, soweit ich dies verstanden habe (wegen der Angabe des DataSourceName statt der activeConnection:

Code: Alles auswählen

Sql = "SELECT artikel, name, vbme FROM artikel where artikel = '" & Artikel & "'"
oArtikelRowSet = createUnoService("com.sun.star.sdb.RowSet")
oArtikelRowSet.DataSourceName = "Adimens"
oArtikelRowSet.Command = Sql
oArtikelRowSet.execute
Auch hier: Das Programm läuft durch (zu meiner Überraschung ohne Geschwindigkeitseinbußen), aber der Speicherverbrauch und damit der Absturz beim Speichern bleiben..



Ich werde jetzt noch ein paar Tests mit einem Minimalprogramm und verschiedenen Datenbanken (SQL-Server über ODBC soie Base-Datenbank) anstellen, ob hier auch jedesmal der Speicher volläuft...

Re: LiO Calc - stürzt nach längerer Makro-Laufzeit ab

Verfasst: Mo, 28.01.2013 14:03
von Kappler
Ich finde keine Lösung für dieses Problem... :cry:

Beholfen habe ich mir jetzt so, dass ich das Dokument immer nach 5 Zeilen abspeichern lasse, dann muss das Makro nicht von vorne anfangen, wenn es nach 50-80 Zeilen abstürzt...
Keine schöne Lösung, aber besser als nichts.

Danke noch mal an alle, die versucht haben, mir hier zu helfen 8)

Re: AW: LiO Calc - stürzt nach längerer Makro-Laufzeit ab

Verfasst: Mo, 28.01.2013 14:49
von komma4
Kenne diese Probleme - bei so einfachen Abfragen - nicht.
Und ich mache sowas seit Jahren...

Tausche bitte mal den Treiber gegen einen JDBC aus.

Re: AW: LiO Calc - stürzt nach längerer Makro-Laufzeit ab

Verfasst: Mo, 28.01.2013 18:00
von Kappler
komma4 hat geschrieben:...Tausche bitte mal den Treiber gegen einen JDBC aus.
JDBC - da musste ich erst mal nachschauen was das überhaupt ist und wie das angewendet wird... 8)

Aber es hat sich gelohnt: Der Speicherverbrauch wächst nur noch in ganz unerheblichem Maß und das Makro läuft problemlos durch.
Ich bilde mir sogar ein, dass es schneller läuft...

Vielen Dank für diesen entscheidenden Hinweis - auf die Idee an dieser Schraube zu drehen wäre ich nie gekommen...