![]() |
Datenbank: SQLite • Version: 3 • Zugriff über: SQLite3Connection
Mit SQLite verbinden, wenn Prog mit Windows startet?
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich habe folgendes Problem: wenn ich meine Anwendung mit Windows über die Registry starten lasse, kann diese sich irgendwie nicht mit der DB Verbinden bzw. die SQLite3Connection nicht laden. Die Fehlermeldung heißt, siehe Screenshot. Sleep mit mehrere Minuten hilft auch nicht, es kann also nicht an dem liegen, dass Windows noch nicht alle Dienste geladen hat. Dieser Code hilft auch nicht:
Delphi-Quellcode:
Bin für jede Hilfe dankbar!
procedure TForm1.FormCreate(Sender: TObject);
var i: Integer; begin if FileExists('D:\myProg\db.db') then begin for i := 0 to 1 do begin if SQLite3Connection1.Connected then begin ShowMessage('Verbunden!'); end else begin ShowMessage('Nicht verbunden!'); Sleep(20000); SQLite3Connection1.Open; end; end; end else ShowMessage('DB-Datei nicht vorhanden!'); end; |
AW: Mit SQLite verbinden, wenn Prog mit Windows startet?
Zitat:
Bekommst du in der gleichen laufenden Anwendung denn später die Datenbank noch auf? |
AW: Mit SQLite verbinden, wenn Prog mit Windows startet?
Zitat:
Ja manuell startet es immer. Manuell kann ich es sofort nach der Anmeldung starten, automatisch startet es auch nach Minuten nicht. |
AW: Mit SQLite verbinden, wenn Prog mit Windows startet?
Nein, das meine ich nicht. Ich meinte: Dein Programm im Registry-Autostart. Es bekommt im ersten Anlauf die DB nicht auf. Wenn du es nicht beendest, was ist dann? Kriegt man die Datenbank etwas später doch noch auf?
|
AW: Mit SQLite verbinden, wenn Prog mit Windows startet?
Zitat:
|
AW: Mit SQLite verbinden, wenn Prog mit Windows startet?
Grundsätzliche Probleme, welche es geben könnte:
das Arbeitsverzeichnis -> FileExists geht auf absoluten Pfad, aber was ist bei der Connection eingestellt? Und warum nimmt FileExist nicht einfach den Pfad von der Connection? (doppelte Buchhaltung) fehlende Rechte -> Wie genau wird dein Programm gestartet? Das WIE hat auch einfluss auf das Arbeitsverzeichnis. |
AW: Mit SQLite verbinden, wenn Prog mit Windows startet?
Liste der Anhänge anzeigen (Anzahl: 1)
Das wird wie folgt in die Registry aufgenommen:
Delphi-Quellcode:
So sieht da der Eintrag aus, siehe Screenshot.
// Anwendung in die Registry aufnehmen
procedure DoAppToRun(RunName, AppName: String); var Reg: TRegistry; begin Reg := TRegistry.Create; with Reg do try begin RootKey := HKEY_CURRENT_USER; OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', True); WriteString(RunName, AppName); CloseKey; end; Finally Free; end; end; ... DoAppToRun('Joblist', ParamStr(0)); ... |
AW: Mit SQLite verbinden, wenn Prog mit Windows startet?
Ich hab's... :-D
Nachdem ich die DB-Komponenten im Objektinspektor auf Werkseinstellung gesetzt habe und die ganzen Einstallungen im Code festgelegt habe, läuft alles wie geschmiert.
Delphi-Quellcode:
SQLite3Connection1.DatabaseName := 'D:\myProg\db.db';
SQLTransaction1.DataBase := SQLite3Connection1; SQLQuery1.Transaction := SQLTransaction1; Auf die visuellen Komponente kann man sich also nicht immer verlassen, oder wie kann man das hier erklären? |
AW: Mit SQLite verbinden, wenn Prog mit Windows startet?
Zitat:
|
AW: Mit SQLite verbinden, wenn Prog mit Windows startet?
Ist eigentlich der typische Fehler, wenn die Anwendung erzeugt wird und die Active-Eigenschaft im OI auf
Delphi-Quellcode:
belässt.
true
Bevor FormCreate aufgerufen wird, werden alle Komponenten erzeugt und die Eigenschaften gesetzt (Active=true), tja was passiert dann wohl, wenn der Pfad zur DB nicht stimmt ;) Also eigene Schludrigkeit ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz