Delphi-PRAXiS
Seite 2 von 2     12

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   SQLite 3 Out of Memory (https://www.delphipraxis.net/204333-sqlite-3-out-memory.html)

Delphi.Narium 21. Mai 2020 12:00

AW: SQLite 3 Out of Memory
 
Du beschreibst zwar, was Du gemacht hast, aber Du beschreibst leider nicht, wie Du es gemacht hast.

Hast Du sowas in der Art gemacht:
Delphi-Quellcode:
SetEnvironmentVariable('SQLITE_TMPDIR','D:\Temp\');
SetEnvironmentVariable('TEMP','D:\Temp\');
SetEnvironmentVariable('TMP','D:\Temp\');
// oder sowas?
SetEnvironmentVariable('SQLITE_TMPDIR',ExtractFilePath(Application.ExeName));
SetEnvironmentVariable('TEMP',ExtractFilePath(Application.ExeName));
SetEnvironmentVariable('TMP',ExtractFilePath(Application.ExeName));
// oder sowas?
ZConnection1.Open;
ZConnection1.ExecuteDirect('PRAGMA temp_store_directory=D:\temp\');
Dann hat die TZConnection noch die Eigenschaft Properties, über die verschiedene Parameter an die Datenbank übergeben werden können, eventuell so:

Delphi-Quellcode:
ZConnection1.Properties.Add('temp_store_directory=D:\temp\');


Da ich SQLite noch nie aus Delphi heraus wirklich ernsthaft genutzt habe, kann ich nicht sagen, ob davon was im "realen Leben" funktioniert, aber eventuell so als Idee?

hoika 21. Mai 2020 12:27

AW: SQLite 3 Out of Memory
 
Hallo,
Änderungen werden in der Regel erst nach dem Neuanmelden oder sqlite-Neustart wirksam.

Delphi.Narium 21. Mai 2020 12:35

AW: SQLite 3 Out of Memory
 
Oder man setzt Umgebungsvariabeln ... im eigenen Programm vor dem Öffnen der Datenbankverbindung.

Wenn ich das recht sehe, werden die Properties der TZConnection beim Verbinden mit der Datenbank gesetzt.
Wenn das kein günstiger Zeitpunkt ist, weiß ich es nicht.

Für einige meiner Programme setzte ich Temp ... beim Programmstart. Das hat die gleiche Wirkung, wie das Setzen dieser Variabeln über die Windowsoberfläche (und ggfls.'ne neue Anmeldung).

Ein weiterer Vorteil: Die Änderungen beim Programmstart gilt nur für das Programm.
Damit hat man keine negativen Auswirkungen auf andere Programme abzuwägen und muss die Änderungen auch nicht jeweils vor dem Programmstart systemweit durchführen und nach dem Programmende wieder rückgängig machen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:43 Uhr.
Seite 2 von 2     12

Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf