Hallo,
sorry, wenn ich schon wieder nerve.
Nach meinen wenig erfolgreichen Ausflügen in die dBase-Welt, habe ich mich auf SQlite(3) besonnen. Damit habe ich bereits gearbeitet und erfolgreich (sic!) ein Datenbank erstellt. In Lazarus gibt es ja auch Unterstützung für SQlite (http://wiki.freepascal.org/SQLite#How_T ... c_Usage.29).
Dem Leitfaden zur Installation bin ich gefolgt (http://wiki.freepascal.org/Install_Packages) und habe letzlich meine Lazarus-Installation zerschossen
Installation und Rebuild klappten, aber nach dem Neustart von Lazarus gibt's nur noch die Fehlermeldung "...SQlite3.dll kann nicht gefunden werden..." und Ende.
Kein Wort von der DLL in der Installationsanleitung oder ich hab's überlesen; jedenfalls naiverweise angenommen, diese wird nur zur Ausführungszeit benötigt.
WO ZU HENKER ERWARTET LAZARUS DENN sqlite3.dll ?
Ich habe sie mal nach ...\components\sqlite kopiert - ohne positive Auswirkung.
Na ja, ich werde jetzt mal Lazarus neu installieren.
Vielen Dank für die Geduld und einen schönen Abend noch.
Ich schon wieder... diesmal SQlite
- af0815
- Lazarusforum e. V.
- Beiträge: 6209
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Ich schon wieder... diesmal SQlite
Ganz einfach, die richtige !!! sqlite.dll im verzeichnis der Lazarus.exe FÜR DIE DESIGNZEIT ! Dann die sqlite.dll im Verzeichnis des exe des Projektes.
Achtung es gibt 32bit und 64bit dll. Je nachdem muss man die richtige nehmen. dll natürlich nur wenn man unter WIndows ist.
Andreas
BTW. Lazarus legt immer eine Kopie von sich an, die kann man notfalls (ohne sqlite) starten um was zu reparieren.
Achtung es gibt 32bit und 64bit dll. Je nachdem muss man die richtige nehmen. dll natürlich nur wenn man unter WIndows ist.
Andreas
BTW. Lazarus legt immer eine Kopie von sich an, die kann man notfalls (ohne sqlite) starten um was zu reparieren.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Re: Ich schon wieder... diesmal SQlite
Welche Komponente hast du denn installiert? TSQLite3Dataset? Würde ich nicht nehmen. Wenn mich jetzt die Erinnerung nicht täuscht, dann bindet diese Komponente die DLL so ein, dass Lazarus gar nicht startet, wenn die DLL nicht gefunden wird. Besser geeignet ist das Package SQLDBLaz, bei dem die DLL zum Start nicht benötigt wird. Das Package ist m.E. schon von Haus aus installiert. Ansonsten erhältst du es unter "Package" > "Installierte Packages einrichten" > in der rechten Liste suchen > "Auswahl installieren" > "Speichern und IDE rekompilieren". Dieses Package ist in dem von dir zitierten wiki-Artikel weiter oben beschrieben.
Etwas ausführlicher als af0815 geschrieben hat:
Wenn nach dem Installieren eines Package Lazarus nicht mehr startet, dann lösche die erzeugte lazarus.exe und benenne lazarus.old.exe in lazarus.exe um - diese Datei wurde vor dem Neukompilieren der IDE so gesichert. Dieser Lazarus sollte wieder funktionieren. Dann das fehlerhafte Package in dem schon erwähnten Dialog in der linken Liste anklicken, "deinstallieren" und dann die IDE nochmals neu übersetzen - nun solltest du wieder den Zustand vor der verunglückten Installation haben.
Etwas ausführlicher als af0815 geschrieben hat:
Wenn nach dem Installieren eines Package Lazarus nicht mehr startet, dann lösche die erzeugte lazarus.exe und benenne lazarus.old.exe in lazarus.exe um - diese Datei wurde vor dem Neukompilieren der IDE so gesichert. Dieser Lazarus sollte wieder funktionieren. Dann das fehlerhafte Package in dem schon erwähnten Dialog in der linken Liste anklicken, "deinstallieren" und dann die IDE nochmals neu übersetzen - nun solltest du wieder den Zustand vor der verunglückten Installation haben.
- gladio
- Beiträge: 217
- Registriert: Sa 21. Jun 2014, 06:15
- OS, Lazarus, FPC: Win10-64 - aktuelle Lazarus/FPC Standard-Edition
- CPU-Target: 64Bit
- Wohnort: Rügen
Re: Ich schon wieder... diesmal SQlite
Welche DLL du für deine Anwendung benötigst hängt von deiner Zielplattform ab.
Für eine 32-Bit-Anwendung die 32-Bit-DLL ins EXE-Verzeichnis ... usw.
Leider unterscheinden sich 32- und 64-Bit-DLL nicht im Namen, so daß man nicht beide ins EXE-Verzeichnis geben kann.
ich hab das mal so gelöst:
Die jeweilige DLL liegt in einem separaten Unterverzeichnis ..\32\sqlite3.dll oder \64\sqlite3.dll
Ähm, und ich verwende Zeos.
Für eine 32-Bit-Anwendung die 32-Bit-DLL ins EXE-Verzeichnis ... usw.
Leider unterscheinden sich 32- und 64-Bit-DLL nicht im Namen, so daß man nicht beide ins EXE-Verzeichnis geben kann.
ich hab das mal so gelöst:
Die jeweilige DLL liegt in einem separaten Unterverzeichnis ..\32\sqlite3.dll oder \64\sqlite3.dll
Code: Alles auswählen
function TDMForm.GetTargetInfo: string;
begin
result := {$I %FPCTARGETCPU%};
end;
procedure TDMForm.FormCreate(Sender: TObject);
begin
....
if GetTargetInfo = 'i386' then
ZConnection2.LibraryLocation:=(ExtractFilePath(Application.ExeName)+'32\sqlite3.dll')
else
ZConnection2.LibraryLocation:=(ExtractFilePath(Application.ExeName)+'64\sqlite3.dll');
end;
Ähm, und ich verwende Zeos.
Re: Ich schon wieder... diesmal SQlite
OK, danke - das hilft mir weiter!
- af0815
- Lazarusforum e. V.
- Beiträge: 6209
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Ich schon wieder... diesmal SQlite
... Wenn du den letzten Satz beachtest.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).