Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Interbase oder Firbird nur mit gds.dll nutzen (https://www.delphipraxis.net/41560-interbase-oder-firbird-nur-mit-gds-dll-nutzen.html)

peter12 5. Mär 2005 08:27


Interbase oder Firbird nur mit gds.dll nutzen
 
Ich möchte firbird nur local nutzen beim Copieren von gds.dll oder fbclient.dll kommt die
Fehlermeldung . Unavailable database.

peter

MrSpock 5. Mär 2005 09:15

Re: Interbase oder Firbird nur mit gds.dll nutzen
 
Hallo Peter12,

was genau meinst du mit "beim Kopieren kommt die Fehlermeldung"?

Ich kenne die Fehlermeldung für den Fall, dass der Server nicht läuft. Nutzt du Firebird unter Linux oder Windows?

DP-Maintenance 5. Mär 2005 09:15

DP-Maintenance
 
Dieses Thema wurde von "MrSpock" von "Klatsch und Tratsch" nach "Datenbanken" verschoben.
Klare Datenbakfrage.

urs.liska 5. Mär 2005 13:49

Re: Interbase oder Firbird nur mit gds.dll nutzen
 
Die Beschreibung ist wirklich etwas ungenau.
Aber vielleicht liegts ja daran:
Man kann die gds32.dll nicht unbedingt einfach kopieren. Wenn sie nicht bei der Installation erzeugt wurde, muss man sie mit dem Tool instclient.exe erzeugen und "installieren".
Schau mal in den diversein readme-Files Deiner Installation.
Urs

Hansa 5. Mär 2005 14:44

Re: Interbase oder Firbird nur mit gds.dll nutzen
 
Zitat:

Zitat von urs.liska
Die Beschreibung ist wirklich etwas ungenau...

Wieso ? :shock: Genauer gehts kaum. 8) Der findet die DB nicht. Das kann jetzt 3 Ursachen haben :

1. Sie existiert überhaupt nicht. :mrgreen:
2. Sie ist am falschen Ort, bzw. ist der Ort im Programm falsch eingestellt
3. Die GDS32.DLL ist nicht da, wo das Programm sie sucht. Die muß immer da sein, wo auch die PROGRAMM.EXE ist. Allerdings wäre es seltsam, daß über die fehlende Datenbank gemeckert wird und nicht über die fehlende GDS32.DLL.

[Edit] : was soll Instclient sein ? Weder jemals was davon gehört, geschweige denn benötigt. Die embedded Version läßt sich tatsächlich alleine dadurch betreiben, daß im Programmverzeichnis die GDS32.DLL / FBCLIENT.DLL liegt. Und bevor die wohl unvermeidliche Frage kommt, was das ist : "Characterset XXX not defined" Es muß ein Unterverzeichnis INTL angelegt werden und dort muß die FBINTL.DLL rein.

urs.liska 5. Mär 2005 15:27

Re: Interbase oder Firbird nur mit gds.dll nutzen
 
Zitat:

Zitat von Hansa
[Edit] : was soll Instclient sein ? Weder jemals was davon gehört, geschweige denn benötigt. Die embedded Version läßt sich tatsächlich alleine dadurch betreiben, daß im Programmverzeichnis die GDS32.DLL / FBCLIENT.DLL liegt. Und bevor die wohl unvermeidliche Frage kommt, was das ist : "Characterset XXX not defined" Es muß ein Unterverzeichnis INTL angelegt werden und dort muß die FBINTL.DLL rein.

Also:
Als Client-Bibliothkek für den FB-Zugriff kann entweder fbclient.dll oder gds32.dll verwendet werden. Die Bibliothek kann entweder im Anwendungsverzeichnis oder im Windows\System32-Ordner liegen. Der erste Weg ist "modern" und soll verwendet werden, der zweite Weg ist aus Kompatibilitätsgründen noch möglich.
Bei der FB-Installation muss man festlegen, ob man a) auch eine gds32.dll erzeugen und b) diese im Systemverzeichnis ablegen will.
Problematisch ist, dass es (ältere) Anwendungen gibt, die eine gds32.dll im Systemverzeichnis brauchen und mit der Bibliothek im Programmverzeichnis nichts anfangen können (das scheint z.B. auch heute noch bei IBO-basierten Programmen der Fall zu sein).
Wenn man bei der FB-Installation eine der Bibliotheken nicht erzeugt hat und dann später doch noch braucht, kann man mit dem Tool {FB-Installationsverzeichnis}\bin\instclient.exe die jeweils nötige DLL erzeugen und ablegen lassen.

Ich brauchte das, nachdem ich IBObjects installiert habe und mein erster Testlauf an der Fehlermeldung "gds32.dll not installed" gescheitert war.

Hoffe das klärt die Sache
Urs

P.S. Die Meldung "unavailable database" kommt übrigens meistens, wenn der Server nicht läuft.
Wenn die Datei nicht vorhanden ist, bekomme ich den Fehler: "Access to database xxx denied by server administrator"

Hansa 5. Mär 2005 15:46

Re: Interbase oder Firbird nur mit gds.dll nutzen
 
Zitat:

Zitat von urs.liska
...Bei der FB-Installation muss man festlegen, ob man a) auch eine gds32.dll erzeugen und b) diese im Systemverzeichnis ablegen will..

Du hast aber mitgekriegt, daß es um eine lokale Sache mit FB embedded geht ? Und du weißt, daß es sich bei der "Installation" lediglich um das kopieren von 2 Dateien handelt ? Und daß absolut nichts "erzeugt" wird ? 8) Da es sich bei der Server GDS32.DLL um eine ganz andere handelt als die von embedded wäre es schon sehr sehr leichtsinnig, diese ins \Windows\System Verzeichnis zu kopieren.

Ich hoffe, Du weißt was solche Tips anrichten können. Wenn du jemandem eine Demo gibst, der meine Server-Lösung einsetzt und du mir diese kaputt macht und den ganzen Betrieb lahmlegst, dann setzts aber was. Das würde teuer werden. :mrgreen:

urs.liska 5. Mär 2005 16:09

Re: Interbase oder Firbird nur mit gds.dll nutzen
 
Nein, habe ich nicht mitgekriegt.

"möchte firbird nur local nutzen" muss nicht zwangsläufig "embedded" heißen.
Und da peter12 sich inzwischen nicht mehr gemeldet hat, um sein ursprüngliches Posting zu konkretisieren, hat sich mein Missverständnis auch nicht geklärt.
Wenn es sich aber um den embedded Server handelt, wird er auch kein instclient.exe finden und wird auch keinen Schaden anrichten. Schließlich habe ich nirgends etwas von manuellem Kopieren geschrieben, oder? Ich habe sogar gesagt, dass man die DLL nicht einfach kopieren könne (was natürlich auf den "normalen" Server bezogen war).
Urs

Hansa 5. Mär 2005 16:42

Re: Interbase oder Firbird nur mit gds.dll nutzen
 
Manuelles Kopieren oder automatisch ? Wo ist am Ende der Unterschied, wenn wichtige Dateien überschrieben wurden ? FB embedded ist gerade wegen solcher Geschichten äußerst interessant. Wenn ich ein eigenes Verzeichnis für mein Programm habe und dort nur die embedded GDS32.DLL hin kopiere, wie gesagt am besten gleich auch die FBINTL.DLL nach Verz. INTL dann kann ich keine bereits bestehende Installation zunichte machen.

Das sollte sich übrigens jeder zu Herzen nehmen, der ein Programm weitergibt, das eine bestimmte DB benötigt. Man kann auf gar keinen Fall automatisch eine DB installieren die man für sein eigenes Programm braucht ohne nachzusehen, ob sie nicht schon da ist (eventuell ältere Version usw.) für ein anderes Programm. Wie man das gefahrlos machen kann habe ich beschrieben. In der Praxis sieht es zumindest bei mir so aus, daß ich sogar einen Hinweistext zeige, in dem steht, daß keinerlei Änderungen am System vorgenommen werden, Registry inbegriffen. Wenn jemand von mir eine Demo Version will, so bekommt der sagenhafte 6 Dateien : EXE, leere / Demo GDB, GDS32.DLL, FBINTL.DLL eine INI und eine INSTALL.BAT um die nötigen Verzeichnisse anzulegen und die Dateien richtig zu kopieren. Die Leute sind wegen Viren und anderem Dreck heute sehr vorsichtig geworden und installieren sich lieber gar nichts, bevor sie das kleinste Risiko eingehen oder nicht genau wissen, was da jetzt genau gemacht werden soll.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz