[gelöst] Zugriff mit Zeos auf MySQL

Rund um die LCL und andere Komponenten
Antworten
Linkat
Lazarusforum e. V.
Beiträge: 561
Registriert: So 10. Sep 2006, 23:24
OS, Lazarus, FPC: Linux Mint 22.1; Lazarus 4.0 FPC 3.2.2; RaspiOS
CPU-Target: AMD 64, ARM 64
Wohnort: nr Stuttgart

[gelöst] Zugriff mit Zeos auf MySQL

Beitrag von Linkat »

Hallo,
ich möchte mit den Komponenten auf eine MySQL-Datenbank zugreifen. Die ZEOS 7.0.3-stable - Komponenten habe ich in Lazarus 1.0.8 eingebunden. Dann nach http://wiki.freepascal.org/Zeos_tutorial/de die ZConnection, ZQuery und Datasource auf die Form gezogen und miteinander verbunden. Das Programm wird fehlerfrei kompiliert, aber beim Ausführen tritt bei

Code: Alles auswählen

ZConnection1.Connect
der Fehler auf:

Code: Alles auswählen

Requested database driver was not found
Die libmysql.dll habe ich im Windows\System32\ und im Projektordner.

Was habe ich übersehen?

Gruß, Linkat
Zuletzt geändert von Linkat am Do 2. Mai 2013, 15:08, insgesamt 1-mal geändert.
Linux Mint 21.3; Lazarus 3.4 FPC 3.2.2; RaspiOS

MmVisual
Beiträge: 1581
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: Zugriff mit Zeos auf MySQL

Beitrag von MmVisual »

64 Bit EXE und 32 Bit DLL :?: :arrow: geht nicht :mrgreen:
EleLa - Elektronik Lagerverwaltung - www.elela.de

Linkat
Lazarusforum e. V.
Beiträge: 561
Registriert: So 10. Sep 2006, 23:24
OS, Lazarus, FPC: Linux Mint 22.1; Lazarus 4.0 FPC 3.2.2; RaspiOS
CPU-Target: AMD 64, ARM 64
Wohnort: nr Stuttgart

Re: Zugriff mit Zeos auf MySQL

Beitrag von Linkat »

Hallo MmVisual,
ich arbeite (in der Firma) zwar an einem Win7 64 bit PC, kompiliere aber mit einer Lazarus 32 bit Version eine 32 bit-Exe.
Ich denke, dass da auch die 32bit libmysql.dll richtig ist, oder etwa nicht?

Gruß, Linkat
Linux Mint 21.3; Lazarus 3.4 FPC 3.2.2; RaspiOS

MmVisual
Beiträge: 1581
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: Zugriff mit Zeos auf MySQL

Beitrag von MmVisual »

Zum Glück gibt es die libmysql.dll als 32 und 64 Bit DLL. Aber in den Eigenschaften der Datei sieht man das nicht.

Schreibe ein kleines Testprogramm mit dem Test-Code drin:

Code: Alles auswählen

function LoadLibTest(s: String): Boolean;
Var h: THandle;
Begin
    h := dynlibs.LoadLibrary(PAnsiChar(s));
  If (h <> 0)
    {$ifndef UNIX}
    And (h <> THANDLE(-1)) //INVALID_HANDLE_VALUE)
    {$endif}
    Then
  Begin
    dynlibs.FreeLibrary(h);
    Result := True;
  end Else Result := False;
end; 
Danach weißt Du das.

Port/Host/User/Password/Protocol Parameter der TZConnection alle richtig gesetzt?
Kannst Du auch im Designer im Objektinspektor einstellen und dann ein "Connected=TRUE" machen/testen.
EleLa - Elektronik Lagerverwaltung - www.elela.de

Linkat
Lazarusforum e. V.
Beiträge: 561
Registriert: So 10. Sep 2006, 23:24
OS, Lazarus, FPC: Linux Mint 22.1; Lazarus 4.0 FPC 3.2.2; RaspiOS
CPU-Target: AMD 64, ARM 64
Wohnort: nr Stuttgart

Re: Zugriff mit Zeos auf MySQL

Beitrag von Linkat »

Hallo,
ich denke, dass ich dieses Problem gelöst habe. In einem älteren Beitrag aus dem Delphi-Praxis-Forum:
http://www.delphipraxis.net/6970-zeos-r ... found.html
steht was über die Eigenschaft "Protocol".

Man kann den richtigen Treiber zuweisen:

Code: Alles auswählen

ZConnection1.Protocol:='mysql';
.


So jetzt muss ich mich nur noch mit den banalen SQL-Befehlen rumquälen.


@MmVisual
in deiner Testfunktion "LoadLibTest" ist dynlibs nicht bekannt. In welcher Unit ist dynlibs enthalten?

Gruß, Linkat
Linux Mint 21.3; Lazarus 3.4 FPC 3.2.2; RaspiOS

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Zugriff mit Zeos auf MySQL

Beitrag von Socke »

Linkat hat geschrieben:in deiner Testfunktion "LoadLibTest" ist dynlibs nicht bekannt. In welcher Unit ist dynlibs enthalten?
In der Unit dnylibs (die Unit heißt so; mit der Angabe des Unit-Namen kann man bestimmen, welche Unit verwendet wird und so ggf. eine Funktion aus einer anderen Unit ausschließen).
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Linkat
Lazarusforum e. V.
Beiträge: 561
Registriert: So 10. Sep 2006, 23:24
OS, Lazarus, FPC: Linux Mint 22.1; Lazarus 4.0 FPC 3.2.2; RaspiOS
CPU-Target: AMD 64, ARM 64
Wohnort: nr Stuttgart

Re: [gelöst] Zugriff mit Zeos auf MySQL

Beitrag von Linkat »

danke Socke, das hätte ich eigentlich auch wissen können.


Wenn ich jetzt den DateiPfad eingebe "c:\windows\system32\libmysql , dann gibt mir die Funktion LoadLibTest ein false zurück. Was weis ich jetzt?

Vielen Dank.

Gruß, Linkat
Linux Mint 21.3; Lazarus 3.4 FPC 3.2.2; RaspiOS

MmVisual
Beiträge: 1581
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: [gelöst] Zugriff mit Zeos auf MySQL

Beitrag von MmVisual »

Vermutlich heißt die Datei "libmysql.dll" und nicht "libmysql", somit wird die Datei nicht gefunden.

Zeige doch in Deinem Windows Dateibrowser auch die Dateiendungen mit an. Das macht das Entwicklerleben leichter 8)
EleLa - Elektronik Lagerverwaltung - www.elela.de

Antworten