Zeos kann Datenbank DLL nicht laden?
-
- Beiträge: 1605
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4.2 FPC 3.2.2)
- CPU-Target: 32/64Bit
Zeos kann Datenbank DLL nicht laden?
Hallo,
Ich habe ein kurioses Problem. Meine EXE, 64 Bit, DLL ebenfalls 64 bit, auf meinem Entwicklungsrechner funktioniert beides problemlos.
Bei einem anderen Rechner hingegen kommen mit den exakt gleichen Dateien dann dieser Fehler:
Client-Library C:\NetShare\KonfigProgram\sybdb.dll found but could not be loaded. Check compile-target and library compatibility! (FormShow)/( $00000001000238FC)
Darauf hin habe ich das Programm auch mal als 32 Bit übersetzt und - wie zu erwarten - die gleiche Fehlermeldung.
Der Test:
h := dynlibs.LoadLibrary(PAnsiChar(DB.LibraryLocation));
zeigt ebenfalls dass die DLL von der EXE nicht geladen werden kann.
Für mich sieht es so aus als ob Windows das Laden dieser DLL verhindert.
Die "sybdb.dll" kommt von den Quellen bei Zeos, da gibt es diese als 32 und 64 Bit Variante. Ich nutze diese DLL bereits seit einigen Jahren. Doch diese Meldung, dass die DLL nicht geladen werden kann sehe ich zum ersten mal.
Weis jemand rat, was das ist?
DB.Protocol = "FreeTDS_MsSQL>=2005"
Die anderen Parameter sind ebenfalls alle gesetzt. Bzw. wenn die falsch sind, dann kommen andere Fehlermeldungen.
Vielen Dank für die Hilfe.
VG Markus
Ich habe ein kurioses Problem. Meine EXE, 64 Bit, DLL ebenfalls 64 bit, auf meinem Entwicklungsrechner funktioniert beides problemlos.
Bei einem anderen Rechner hingegen kommen mit den exakt gleichen Dateien dann dieser Fehler:
Client-Library C:\NetShare\KonfigProgram\sybdb.dll found but could not be loaded. Check compile-target and library compatibility! (FormShow)/( $00000001000238FC)
Darauf hin habe ich das Programm auch mal als 32 Bit übersetzt und - wie zu erwarten - die gleiche Fehlermeldung.
Der Test:
h := dynlibs.LoadLibrary(PAnsiChar(DB.LibraryLocation));
zeigt ebenfalls dass die DLL von der EXE nicht geladen werden kann.
Für mich sieht es so aus als ob Windows das Laden dieser DLL verhindert.
Die "sybdb.dll" kommt von den Quellen bei Zeos, da gibt es diese als 32 und 64 Bit Variante. Ich nutze diese DLL bereits seit einigen Jahren. Doch diese Meldung, dass die DLL nicht geladen werden kann sehe ich zum ersten mal.
Weis jemand rat, was das ist?
DB.Protocol = "FreeTDS_MsSQL>=2005"
Die anderen Parameter sind ebenfalls alle gesetzt. Bzw. wenn die falsch sind, dann kommen andere Fehlermeldungen.
Vielen Dank für die Hilfe.
VG Markus
EleLa - Elektronik Lagerverwaltung - www.elela.de
- af0815
- Lazarusforum e. V.
- Beiträge: 6924
- 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: Zeos kann Datenbank DLL nicht laden?
Die erste Frage, darf aus diesem Pfad die DLL geladen werden ? Hat der Benutzer die korrekten Rechte. Zumindest Lesen, Ausführen sollte immer dabei sein.
Wenn du die Testapp von der Adminkonsole (CMD als Admin ausführen) startest geht es dann ? Wenn ja, ist es ein Rechteproblem.
Ich bin auf eine Spezialität der FreeTDS gestossen, in Win11 auf einen speziellen Prozessor mit AI Funktionen (nagelneuster Laptop) ist die DLL auch nicht zum laden gegangen, erst eine absolut neu kompilierte DLL hat dann funktioniert. War aber sicher ein Spezialfall. Kennzeichen war, Programm mit DLL auf einen anderen PC hat immer funktioniert, egal welcher Benutzer.
Wenn du die Testapp von der Adminkonsole (CMD als Admin ausführen) startest geht es dann ? Wenn ja, ist es ein Rechteproblem.
Ich bin auf eine Spezialität der FreeTDS gestossen, in Win11 auf einen speziellen Prozessor mit AI Funktionen (nagelneuster Laptop) ist die DLL auch nicht zum laden gegangen, erst eine absolut neu kompilierte DLL hat dann funktioniert. War aber sicher ein Spezialfall. Kennzeichen war, Programm mit DLL auf einen anderen PC hat immer funktioniert, egal welcher Benutzer.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 1605
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4.2 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Zeos kann Datenbank DLL nicht laden?
Ja, genau so ist mein Problem wie du es auch hattest. CMD als Admin >> Exe geht ebenfalls nicht.
Hast du mir einen Tipp wie ich zu einer neuen sybdb.dll komme? Oder kannst du mir deine (64 Bit) anhängen?
Thx. Markus
Hast du mir einen Tipp wie ich zu einer neuen sybdb.dll komme? Oder kannst du mir deine (64 Bit) anhängen?
Thx. Markus
EleLa - Elektronik Lagerverwaltung - www.elela.de
- af0815
- Lazarusforum e. V.
- Beiträge: 6924
- 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: Zeos kann Datenbank DLL nicht laden?
Anhängen geht nicht mehr, da ich nicht mehr in der Firma arbeite. Ich habe die damals von einem Buildserver geholt, der die FreeTDS automatisch neu baut, soviel habe ich noch in Erinnerung.MmVisual hat geschrieben: Fr 1. Aug 2025, 16:08 Ja, genau so ist mein Problem wie du es auch hattest. CMD als Admin >> Exe geht ebenfalls nicht.
Hast du mir einen Tipp wie ich zu einer neuen sybdb.dll komme? Oder kannst du mir deine (64 Bit) anhängen?
Thx. Markus
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 1605
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4.2 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Zeos kann Datenbank DLL nicht laden?
Hier meintest du?
https://ci.appveyor.com/project/FreeTDS/freetds
Und dann hier:
https://ci.appveyor.com/project/FreeTDS ... /artifacts
Es sieht jetzt ander aus:
E: DBError : [20011] : Maximum number of DBPROCESSes already allocated (FormShow)/( $00000001000238FC)
Fehlt beim Build das "MARS CONNECTION=TRUE"?
https://ci.appveyor.com/project/FreeTDS/freetds
Und dann hier:
https://ci.appveyor.com/project/FreeTDS ... /artifacts
Es sieht jetzt ander aus:
E: DBError : [20011] : Maximum number of DBPROCESSes already allocated (FormShow)/( $00000001000238FC)
Fehlt beim Build das "MARS CONNECTION=TRUE"?
EleLa - Elektronik Lagerverwaltung - www.elela.de
- af0815
- Lazarusforum e. V.
- Beiträge: 6924
- 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: Zeos kann Datenbank DLL nicht laden?
Ja, genau von dort haben wir die lauffähige Version bekommen. Frag mich nur nicht welche das war.MmVisual hat geschrieben: Fr 1. Aug 2025, 17:36 Und dann hier:
https://ci.appveyor.com/project/FreeTDS ... /artifacts
Geht ein kurzes Testprogramm mit den neuen Treiber ?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 1605
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4.2 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Zeos kann Datenbank DLL nicht laden?
Ich habe nun sämtliche Versionen ausprobiert, 2013 ... 2022.
Es kommt immer die gleiche Fehlermeldung
Mit der alten Zeos DLL geht es, jedoch alle neue DLL's zeigen den Fehler bereits beim Connect von TZConnnection.
Kannst du mir am Montag bitte deine DLL senden?
Ältere Artefakte kann man leider vom Buildserver nicht laden, die sind automatisch gelöscht.
Im Build Log vom Buildserver sieht man auch dass MarsConnection aktiviert ist. Daran kann es nicht liegen. Auch ist in meinem Testprojekt nur die TZConnection, keine Query.
Dankeschön, VG Markus
Es kommt immer die gleiche Fehlermeldung
Ich habe ein kleines Test Projekt gemacht, mit nur TZConnection und einem Button für Connect und die Parameter im Objektinspektor gesetzt.Maximum number of DBPROCESSes already allocated
Mit der alten Zeos DLL geht es, jedoch alle neue DLL's zeigen den Fehler bereits beim Connect von TZConnnection.
Kannst du mir am Montag bitte deine DLL senden?
Ältere Artefakte kann man leider vom Buildserver nicht laden, die sind automatisch gelöscht.
Im Build Log vom Buildserver sieht man auch dass MarsConnection aktiviert ist. Daran kann es nicht liegen. Auch ist in meinem Testprojekt nur die TZConnection, keine Query.
Dankeschön, VG Markus
EleLa - Elektronik Lagerverwaltung - www.elela.de
- af0815
- Lazarusforum e. V.
- Beiträge: 6924
- 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: Zeos kann Datenbank DLL nicht laden?
Eine Frage noch, welche ZEOS Version?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 1605
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4.2 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Zeos kann Datenbank DLL nicht laden?
7.2.14, SVN 8050
Laz V4.2
Laz V4.2
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 1605
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4.2 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Zeos kann Datenbank DLL nicht laden?
Ich wollte nochmal fragen, hattest du Zeit mal nach der DLL zu schauen?
Thx. Markus.
Thx. Markus.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 1605
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4.2 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Zeos kann Datenbank DLL nicht laden?
Ich habe den Bug gefunden, es lag an Zeos:
Abgesehen davon dass es noch ein Tippfehler ist.
Vielen Dank für den Tipp mit dem Buildserver.
Ich habe den FreeTDS C-Code mit früheren Versionen verglichen und gesehen dass da alles OK sein sollte und der Fehler konnte nur dann kommen wenn man kein Socket mehr anlegen kann. FreeTDS hat eigentlich ein Array mit 4096 Sockets und das kann eigentlich ja nicht sein. So kam ich auf die Idee dass wohl die Initialisierung fehlen musste.
VG Markus
Zeos hat die Zeile Assert() einfach nicht ausgeführt und damit das dbIntit() nicht.Abgesehen davon dass es noch ein Tippfehler ist.
Vielen Dank für den Tipp mit dem Buildserver.
Ich habe den FreeTDS C-Code mit früheren Versionen verglichen und gesehen dass da alles OK sein sollte und der Fehler konnte nur dann kommen wenn man kein Socket mehr anlegen kann. FreeTDS hat eigentlich ein Array mit 4096 Sockets und das kann eigentlich ja nicht sein. So kam ich auf die Idee dass wohl die Initialisierung fehlen musste.
VG Markus
EleLa - Elektronik Lagerverwaltung - www.elela.de
- af0815
- Lazarusforum e. V.
- Beiträge: 6924
- 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: Zeos kann Datenbank DLL nicht laden?
An und für sich habe ich im ZEOS einen Post dazu gemacht. https://zeoslib.sourceforge.io/viewtopic.php?t=250634 allerdings für ZEOS 8.0
Edit: Habe dort einen Verweis hierhin gemacht.
Edit: Habe dort einen Verweis hierhin gemacht.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 1605
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4.2 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Zeos kann Datenbank DLL nicht laden?
Ich habe das auch geschrieben, aber hier:
https://sourceforge.net/p/zeoslib/tickets/634/
https://sourceforge.net/p/zeoslib/tickets/634/
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 2
- Registriert: Mi 30. Dez 2020, 11:33
Re: Zeos kann Datenbank DLL nicht laden?
Moin,
dbinit wird nicht der Zeile mit dem Assert aufgerufen. In der Zeile mit dem Assert wird lediglich geprüft, ob dbinit SUCCEED zurückgliefert hat. Für die Auslieferungsversion sparen wir uns den Test. Hat FPC die Zeile mit dem dbinit wegoptimiert? Das kann ich mir nicht vorstellen?MmVisual hat geschrieben: Mo 4. Aug 2025, 16:32 Ich habe den Bug gefunden, es lag an Zeos:
Bild1.png
Zeos hat die Zeile Assert() einfach nicht ausgeführt und damit das dbIntit() nicht.
Abgesehen davon dass es noch ein Tippfehler ist.
- af0815
- Lazarusforum e. V.
- Beiträge: 6924
- 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: Zeos kann Datenbank DLL nicht laden?
Siehe https://www.freepascal.org/docs-html/rt ... ssert.htmlmarsupilami hat geschrieben: Mo 4. Aug 2025, 19:50 Moin,
dbinit wird nicht der Zeile mit dem Assert aufgerufen. In der Zeile mit dem Assert wird lediglich geprüft, ob dbinit SUCCEED zurückgliefert hat. Für die Auslieferungsversion sparen wir uns den Test. Hat FPC die Zeile mit dem dbinit wegoptimiert? Das kann ich mir nicht vorstellen?MmVisual hat geschrieben: Mo 4. Aug 2025, 16:32 Ich habe den Bug gefunden, es lag an Zeos:
Bild1.png
Zeos hat die Zeile Assert() einfach nicht ausgeführt und damit das dbIntit() nicht.
Abgesehen davon dass es noch ein Tippfehler ist.
Assert sind im Paket definitiv nicht aktiviert. Ob das jetzt im verschachtelten Includedateien irgendwo aktiviert ist, ist nicht klar.If assertions are not enabled at compile time, this routine does nothing, and no code is generated for the Assert call.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).