Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi sqlite3 Zeos requested database driver not found -mal wieder (https://www.delphipraxis.net/127497-sqlite3-zeos-requested-database-driver-not-found-mal-wieder.html)

braini4c 14. Jan 2009 14:25

Datenbank: sqlite • Version: 3 • Zugriff über: Zeos 6.6.2-RC

sqlite3 Zeos requested database driver not found -mal wieder
 
Hallo,
ich hab Probleme mit Zeos auf meine sqlite-3 DB zuzugreifen.
Im Designmodus funktioniert alles. Ich setzte Connected auf true, kein Fehler, er zeigt auch die Daten in einem DBGrid korrekt an.
Sobald ich das ganze kompiliere und ich connecten will kommt: requested database driver not found.
Habe es mit 2 verschiedenen dll's probiert, die von zeos und die von sqlite.org. Die dll liegt im gleichen Verzeichnis wie die .exe
Woran könnte es also liegen ?

Danke für eure Hilfe
Julian

mschaefer 14. Jan 2009 15:22

Re: sqlite3 Zeos requested database driver not found -mal wi
 
Moin, moin,

die aktuelle SQLite.dll für ZEOS 6.6.2 ist "sqlite3.dll mit 457 kByte". Einige andere gehen auch, aber dann hängt die ein oder andere Funktion.

Dein Fehler hört sich aber so an, als ob das "Database.Protocol" nicht richtig eingestellt ist. Da muß angegeben sein "sqlite-3".

Grüße // Martin

braini4c 14. Jan 2009 15:44

Re: sqlite3 Zeos requested database driver not found -mal wi
 
Hallo Martin,
danke für deine Antwort. Ich habe das ganze nochmal gecheckt aber es funktioniert leider immer noch nicht:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
 Zconnection1.Database:='E:\DelphiProjects\db\main.db';
 ZConnection1.Protocol:='sqlite-3';
 ZConnection1.Connect;
end;
Die *.dll die ich von der angegebenen seite runtergeladen habe ist 485 kbyte groß.
die von Zeos ist die mit 370Kbyte.

Was ich so merkwürdig finde ist, dass es im Designer funktioniert. Dachte schon, dass er da viell. eine andere dll benutzt die irgendwo im Path angegeben ist. konnte aber keine finden.
Hat noch wer eine Idee?

Julian

mschaefer 14. Jan 2009 17:02

Re: sqlite3 Zeos requested database driver not found -mal wi
 
Hallo Julian,

hätte jetzt die Datenbankendung 's3db' erwartet, aber das hängt ab wie Du die DB genannt hast. Gib noch mal explizit den ZConnection.Host mit '127.0.0.1' an. Das habe ich aus nicht ganz klaren Hintergründen immer gemacht.

Grüße // Martin

braini4c 14. Jan 2009 18:53

Re: sqlite3 Zeos requested database driver not found -mal wi
 
Hallo Martin,

das mit dem host hat leider auch nix gebracht. Das ist die Stelle wo Zeos aussteigt:
Delphi-Quellcode:
{**
  Gets a driver which accepts the specified url.
  @param Url a database connection url.
  @return a found driver or <code>null</code> otherwise.
}
function TZDriverManager.GetDriver(const Url: string): IZDriver;
var
  I: Integer;
  Current: IZDriver;
begin
  Result := nil;
  for I := 0 to FDrivers.Count - 1 do
  begin
    Current := FDrivers[I] as IZDriver;
    if Current.AcceptsURL(Url) then
    begin
      Result := Current;
      Break;
    end;
  end;
end;
vielleicht hilft das ja. Die URL zur Laufzeit ist:
'zdbc:sqlite-3:///E:\DelphiProjects\db\main.db?UID=;PWD='
Viele Grüße + schonmal Danke für deine Bemühungen
Julian

mschaefer 14. Jan 2009 19:07

Re: sqlite3 Zeos requested database driver not found -mal wi
 
Heute Abend habe ich leider mein Internet-Limit erreicht: Im Monent denke ich, dass die SQLite3.dll nicht von der EXE gefunden wird (eventuell mal ins DB Verzeichnis legen). Die IDE hat halt ihre Zusatzpfade wo sie nach der dll auch sucht und EXE muß mit den Standartpfaden vorlieb nehemn. Eventuel kann man die dll mit LoadLibarie auch direkt durch die EXE laden lassen, dazu aber dann morgen mehr..

Grüße // Martin

braini4c 15. Jan 2009 17:31

Re: sqlite3 Zeos requested database driver not found -mal wi
 
Hallo,
die DB und die .exe sind im gleichen verzeichniss. die *.dll ebenso.
Die IDE scheint auf die .dll aus Windows\system32 zuzugreifen. (Kann diese nicht löschen wenn ich in der IDE mit der DB connecte - wenn ich Delphi schließe geht es).
Allerdings habe ich die dll da per Hand vorher reinkopiert. Sie ist also identisch mit der aus dem Verzeichniss.
sehr merkwürdig...

viele grüße
Julian


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:36 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