Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Zugriffskomponenten für Firebird (https://www.delphipraxis.net/151760-zugriffskomponenten-fuer-firebird.html)

Alfredo 3. Jun 2010 16:54

Re: Zugriffskomponenten für Firebird
 
Hast Du auch das mit den Support DLLs gelesen?

Firebird 2.1.x benötigt msvcr80.dll im Verzeichnis wo fbclient.dll liegt.

Schau Dir einmal das Startverzeichnis deines Firebirdservers an .....\bin\
und Windows\system32 und lies auch die Erläuterungen unter "other problems" = "Firebird and DLL Hell".

Bei mir funktioniert zwar alles, weil alles notwendige im Startverzeichnis
liegt(mehr Zufall als Absicht), aber es ist trotzdem ein ganz schöner Verhau.

idefix2 3. Jun 2010 17:51

Re: Zugriffskomponenten für Firebird
 
Noch einmal: Was mir rätselhaft ist, ist, dass das Ding einwandfrei funktioniert, wenn ich in der UIB Komponente als Library fbclient.dll angebe - d.h., dass alle sonstigen Voraussetzungen erfüllt sein müssen. Wenn ich statt dessen gsd32.dll angebe (und die Änderung des DLL Namens ist die einzigfe Änderung, die ich mache), funktioniert es nicht, obwohl gds32.ddl eine exakte Kopie von fbclient.dll ist.

Lemmy 7. Jun 2010 06:30

AW: Re: Zugriffskomponenten für Firebird
 
Hi,

Zitat:

Zitat von idefix2 (Beitrag 1025636)
Noch einmal: Was mir rätselhaft ist, ist, dass das Ding einwandfrei funktioniert, wenn ich in der UIB Komponente als Library fbclient.dll angebe - d.h., dass alle sonstigen Voraussetzungen erfüllt sein müssen. Wenn ich statt dessen gsd32.dll angebe (und die Änderung des DLL Namens ist die einzigfe Änderung, die ich mache), funktioniert es nicht, obwohl gds32.ddl eine exakte Kopie von fbclient.dll ist.

das ist ganz einfach: anhand der Version der DLL wird versucht zu ermitteln was der Server "kann". Bei Firebird stehen wir gerade bei Version 2.1, bei INterbase bei 7? Wenn Du die gds32.dll jetzt mit der Versionsnummer 2.1 der Bibliothek vorwirfst, dann "erwartet" die Bibliothek eine Interbase mit Version 2.1.

Aus diesem Grund ist bei der FIrebird-Installation ein kleine Proggy dabei: instclient.exe. Damit kannst Du eine Kopie der fbclient.dll erstellen und gleichzeitig deren Versionsstring auf 6.x setzen. Bei Firebird 2.1 kommt da 2.1.1.17910 heraus....

EDIT

Blöd wenn man 2 Sachen gleichzeitig macht... Zumindest sollte da eigentlich was mit 6.x raus kommen. Bei FB2.1 kommt das nicht mehr raus... Sehr seltsam...

RWarnecke 7. Jun 2010 06:37

AW: Zugriffskomponenten für Firebird
 
Hallo Lemmy,

Deine Aussage verwirrt mit mich jetzt ein wenig. Gilt das für alle Komponenten oder nur für die UIB Komponenten ?

mkinzler 7. Jun 2010 06:39

AW: Zugriffskomponenten für Firebird
 
Für die IBX, denn diese sind ja ursprünglich für Interbase gedachtt. Die anderen kennen Firebird ja und handeln entsprechend

RWarnecke 7. Jun 2010 06:42

AW: Zugriffskomponenten für Firebird
 
Ich frage nämlich deswegen, da ich die IBx-Komponenten verwendet habe und da lediglich nur die fbclient.dll in gds32.dll umbenannt habe.

Lemmy 7. Jun 2010 07:18

AW: Zugriffskomponenten für Firebird
 
Hi,

sorry, ja gilt für die IBX bzw. auch für Software, die nur Interbase kennt, d.h. hier die gds32.dll zwingend benötigt.


Grüße

idefix2 7. Jun 2010 12:29

AW: Zugriffskomponenten für Firebird
 
Danke, damit wird es etwas klarer.
Wobei ich die Vorgangsweise, den Datenbanktyp aus dem Namen der Client-Dll abzuleiten, äußerst unsauber finde. Eine einstellbare Property bei der connection-Komponente bzw. ein zusätzlicher Parameter beim Öffnen der Datenbank bei der non-VCL Variante wäre sicher kein übertriebener Luxus.

mkinzler 7. Jun 2010 12:47

AW: Zugriffskomponenten für Firebird
 
Man (CG/EM) hat aber kein Interesse, dass man IBX für FireBird nimmt

DeddyH 7. Jun 2010 13:03

AW: Zugriffskomponenten für Firebird
 
Klar, die wollen sich ja nicht selbst ins Knie schießen.

mkinzler 7. Jun 2010 13:05

AW: Zugriffskomponenten für Firebird
 
Denn bei dbx reicht, dank Beschränkung auf 5 lokale Zugriffe, die pro nicht mehr für sinnvollen Einsatz

Lemmy 7. Jun 2010 13:11

AW: Zugriffskomponenten für Firebird
 
Hi,

bei der Versionsgeschichte geht es weniger um den Datenbanktyp sondern eher darum, ob bestimmte Funktionen bereit stehen. So wurden wohl mit IB6.0 div. Administrative Funktionen in IB über die API bereit gestellt (Backup, Restore, Security), die in der 5er nicht da waren. Damit das die IBX unterscheiden konnte, hat Jeff Overcash (der Entwickler von IBX) das eben über die Versionsnummer der Client.DLL gelöst. Und er hat schon ganz am Anfang klar gestellt, dass IBX für Interbase entwickelt werden.....

idefix2 7. Jun 2010 20:24

AW: Zugriffskomponenten für Firebird
 
Alles gut und schön. Tatsache ist, dass offensichtlich der Datenbanktyp (Interbase oder Firebird) von den IBX Komponenten sehr wohl unterschieden wird, dass aber diese Unterscheidung über den Namen der DLL gemacht wird - das ist eine äusserst unsaubere Lösung, die ja auch für Interbase User nicht unbedingt lustig ist.

mkinzler 7. Jun 2010 20:26

AW: Zugriffskomponenten für Firebird
 
Nein, IBX unterscheidet nicht FireBird und Interabse sondern nur InterBase anhand der Version. deshalb wird fireBird als eine Uralt-Interbase Version erkannt.

idefix2 7. Jun 2010 21:41

AW: Zugriffskomponenten für Firebird
 
Dann müsste es egal sein, ob meine DLL fbclient.dll oder gds32.dll heisst (bei identischem Inhalt) - Ist es aber nicht.

mkinzler 7. Jun 2010 21:52

AW: Zugriffskomponenten für Firebird
 
IBX lädt aber statisch die IBX und liest die Versionsnummewr aus, und diese ist bei einr umbenannten fbclient halt maximal 2.5. Deshalb ändert instclient diese auf die höchste zu FB komaptible Version von IB nämlich 6


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:00 Uhr.
Seite 2 von 2     12   

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