[gelöst] LiO Calc - stürzt nach längerer Makro-Laufzeit ab

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Kappler
**
Beiträge: 29
Registriert: Mi, 23.01.2013 10:13

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

Beitrag 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...
Kappler
**
Beiträge: 29
Registriert: Mi, 23.01.2013 10:13

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

Beitrag 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)
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

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

Beitrag 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.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Kappler
**
Beiträge: 29
Registriert: Mi, 23.01.2013 10:13

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

Beitrag 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...
Antworten