![]() |
Datenbank: Firedird • Version: 2 • Zugriff über: dbExpress
Connection zu firebird will nicht
Hallo,
ich habe auf meinem Rechner jetzt firebird installiert. Der Server läuft, mit isql habe ich probeweise eine Datenabnk und darin eine tabelle erstellt, das funktioniert. Jetzt habe ich mir auf ein Formular aus den dbExpress-Komponenten eine SQLConnection gezogen, und dort die Eigenschaften database, password und username gesetzt, database enthält den vollen Pfad und Namen der Datenbank, user und password entsprechen genau dem, was ich auch im ISQL eingegeben habe. Dei Client-DLL habe ich im Zuge der Installation ins Windows Systemverzeichnis kopiert. Wenn ich jetzt im Formulardesigner connected = true setzen will, fragt er noch einmal nach dem Password und meldet dann "unavailable databse". Datenbankpfad, user und password habe ich schon mehrfach überprüft, die sind richtig. So sieht meine Connection aus:
Delphi-Quellcode:
object SQLConnection1: TSQLConnection
ConnectionName = 'IBConnection' DriverName = 'Interbase' GetDriverFunc = 'getSQLDriverINTERBASE' LibraryName = 'dbxint.dll' Params.Strings = ( 'DriverName=Interbase' 'Database=d:\delphi\firebird\musikbox.fdb' 'RoleName=RoleName' 'Password=test' 'BlobSize=-1' 'Interbase TransIsolation=ReadCommited' 'Trim Char=False') VendorLib = 'gds32.dll' Left = 344 Top = 240 end |
Re: Connection zu firebird will nicht
Wo läuft der Server (auf dem selben Rechner)?
|
Re: Connection zu firebird will nicht
ja, auf dem selben Rechner
|
Re: Connection zu firebird will nicht
Der Wert "Database" hat folgenden Syntax : <servername/server ip-adresse>:<pfad zur datenbank inkl. Datenbankname>
Beispiel für einen Server ==> 192.168.168.168:C:\Datenbanken\Firebird\Test.fdb Beispiel für lokal ==> localhost:C:\Datenbanken\Firebird\Test.fdb Bei dem Beispiel für lokal, kann statt localhost auch 127.0.0.1 stehen. Das gleiche für den Server, da sollte dann der DNS-Servername stehen. |
Re: Connection zu firebird will nicht
Habe 'localhost:' vorangesetzt, Jetzt kommt eine andere Fehlermeldung:
Unable to complete request to host "localhost". Failed to locate machine. Undefined service gds_db/tcp.. |
Re: Connection zu firebird will nicht
Zitat:
da muss folgender Eintrag dazu: "gds_db 3050/tcp" Der bei den vorhandenen Einträgen gesetzte Kommentar ist optional Gruss Kh |
Re: Connection zu firebird will nicht
Irgendwie ist es zum Verzweifeln.
Nachdem ich jetzt auch diesen Eintrag gemacht habe (ich habe noch einmal gesucht, in der Firebird Installationsanleitung steht von der Notwendigkeit, diesen Eintrag zu erstellen, kein Wort, zumindest habe ich nichts derartiges gefunden), scheint endlich Kontakt zwischen meinem Programm und dem Datenbankserver stattzufinden, aber ich bekomme wieder eine Fehlermeldung: connection rejected by remote interface. Ich habe noch einen Datenbank-alias erstellt, unter dem kann ich mit isql die Datenbank problemlos öffnen:
SQL-Code:
Meine Delphi-Datenbankverbindung im Klartext:
C:\Program Files\Firebird\bin>isql
Use CONNECT or CREATE DATABASE to specify a database SQL> connect musikbox user SYSDBA password test; Database: musikbox, User: SYSDBA SQL>
Delphi-Quellcode:
Die Einstellungen entsprechen doch jetzt genau haargenau denen, die ich im isql eingebe,
object SQLConnection1: TSQLConnection
ConnectionName = 'IBConnection' DriverName = 'Interbase' GetDriverFunc = 'getSQLDriverINTERBASE' LibraryName = 'dbxint.dll' Params.Strings = ( 'DriverName=Interbase' 'Database=localhost:musikbox' 'RoleName=' 'Password=test' 'BlobSize=-1' 'Interbase TransIsolation=ReadCommited' 'Trim Char=False' 'User_Name=SYSDBA') VendorLib = 'gds32.dll' Left = 344 Top = 240 end aber es funktioniert nicht. |
Re: Connection zu firebird will nicht
Zitat:
ich kenne zwar deine Zugriffskomponenten nicht,( hast nen bestimmten Grund diese zu verwenden?) aber warum nimmst nicht ZEOS? damit funktionierts , zumindest bei mir, bisher bei allen Installationen fehlerfrei. |
Re: Connection zu firebird will nicht
Hallo idefix2,
Du benutzt DBExpress für Interbase, um eine Verbindung aufzubauen brauchst Du eine für Firebird. Bis bald Chemiker |
Re: Connection zu firebird will nicht
Verstehe. Ich habe mir eingebildet, gelesen zu haben, dass die DB-Express Komponenten Firebird können, und nachdem eine eigene Firebird Auswahl nicht verfügbar ist, habe ich gedacht, dass die Interbase Komponenten auch für Firebird funktionieren - war wohl nichts. Jetzt hab ich mir ZEOS heruntergeladen und werde mich mit der Installation von den ZEOS Komponenten spielen.
Warum muss alles sooo müüüühsam sein? |
Re: Connection zu firebird will nicht
Die FireBird Treiber gibt es ert ab D2010. Diese sind aber (in der Pro) auch nur für lokale Verbindungen (wie alle dbExpress-Treiber)
|
Re: Connection zu firebird will nicht
Hallo idefix2,
wie khh schon geschrieben hat, es gibt eine kostenlose Zugriffkomponente: ZEOS. Kostenpflichtige gibt es FIBplus, IBDAC, UNIDAC. Wenn Du Geld über hast, gibt es auch die Möglichkeit sich Delphi 2010 Enterprice zu kaufen, dort ist der DBExpress-Treiber für Firebird enthalten. Bis bald Chemiker |
Re: Connection zu firebird will nicht
Oder, wenn es umbedingt dbExpress sein muss, altaernative dbExpress-Treiber z.B. von DevArt
|
Re: Connection zu firebird will nicht
PFFFFF!
Erst einmal die ZEOS Library von Sourceforge heruntergeladen - dann versucht zum Laufen zu bringen, bis ich draufgekommen bin, dass die mit "Delphi 9" bezeichnete Version nicht Delphi 2009, sondern irgend eine ältere Version ist, ein "Delphi 9" ist mir überhaupt nicht bekannt, aber das Delphi 2009 nennen die Delphi 12. Dann festgestellt, dass die einzige ZEOS Version, die Delphi 2009 unterstützt, die ZEOS 7.0.0 alpha ist - nicht übertrieben beruhigend, wenn man gerade erst dabei ist, zu lernen, wie die Dinge funktionieren, da sind potentielle Fehler in den Werkzeugen ein zusätzlicher Verunsicherungsfaktor. Ich habe mir jetzt auch verschiedene kommerziell erhältliche Komponenten angeschaut und eine Trial Version der devart dbexpress Komponenten heruntergeladen. UNIDAC würde mir eventuell gefallen, weil neben Firebird eine Menge anderer Datenbankserver abgedeckt werden (Obwohl die Hauptprobleme beim Umstieg von einer DB auf eine andere ohnedies eher bei den Unterschieden zwischen den SQL Versionen und nicht beim Zugriff auf die Datenbank liegen werden). Firebird wird zwar zu beginn der Beschreibung als unterstütztes datenbanksystem angeführt, scheint in der genaueren Beschreibung dann aber nicht mehr explizit auf. Entweder diese Komponenten steuern, so wie UNIDAC (dort steht es explizit) Firebird und Interbase mit dem gleichen Schnittstllenlayer an - im Gegensatz zu den DBExpress Komponenten, weswegen ja der ganze Thread entstanden ist -, oder nur mit der ODBC Schnittstelle, dann kann man es vergessen. Weiss jemand mehr dazu? |
Re: Connection zu firebird will nicht
Hallo,
UniDac verwenden wir hier auch. Ist schön einfach. Zitat:
die ein Konkurrenzprodukt zum freien Ableger (Firebird) ist. <Ironie> Warum das so müüüühsam ist, weiss ich auch nicht </Ironie> Heiko |
Re: Connection zu firebird will nicht
Hi,
für DBExpress und FB kannst DU auch noch den hier versuchen: ![]() ein einfacher DBX-Treiber für FB. GRüße |
Re: Connection zu firebird will nicht
Zitat:
aus Wikipedia: Zitat:
Aber unsere Welt ist ja die beste aller möglichen Welten, nicht wahr? |
Re: Connection zu firebird will nicht
Hallo,
Zitat:
Um neue Funktionen bereitzustellen, muss die interne DB-Struktur halt mal verändert werden. Und BorCodEmb macht das bei Interbase auch so und ist natürlich nicht gewillt, auf Firebird Rücksicht zu nehmen. BorCodEmb -> DBExpress (Löhnware für BorCodEmb) -> Interbase (Löhnware für BorCodEmb) BorCodEmb -> DBExpress (Löhnware für BorCodEmb) -> Firebird (Freeware) Was würdest du an Stelle von BorCodEmb machen ? Die wollen ihr Interbase verkaufen ... Heiko |
Re: Connection zu firebird will nicht
Zitat:
Zitat:
Zitat:
Zitat:
Ich bin jetzt dem Tip von Lemmy gefolgt und habe dbxfirebird von ![]() Vorher habe ich noch draufkommen müssen, dass ich die c:\Users\Public\Documents\RAD Studio\dbExpress\dbxdrivers.ini anpassen muss, darüber steht auch nirgends, vor allem nicht im readme der Komponente, irgend eine Information. Es befindet sich zwar nach dem Entpacken der Komponentee im BIN verzeichnis eine eigene solche Datei, die wird aber anscheinend ignoriert, auch wenn man das Demoprogramm von dem Verzeichnis aus startet. Aber das alles als mühsam zu bezeichnen, ist wahrscheinlich grundfalsch, macht doch einen Mordspass! |
Re: Connection zu firebird will nicht
ODS = On disk structure
Zitat:
Der FireBird Client ist eigentlich abwärtskompatibel, so dass neuere Versionen grundsätzlich kein Problem darstellen sollten. Es könnte höchstens Probleme geben, da FB2.x vieles genauer nimmt als FB1.x. |
Re: Connection zu firebird will nicht
Hi,
sorry, vielleicht hätte ich etwas mehr schreiben sollen... Zur Firebirdversion: Zitat:
und wenn ich nach ODS suche, ist der erste Link der hier: ![]() Und das Embarcadero dir neben Delphi auch noch Interbase, Blackfish und alle anderen Produkte am besten in 2facher Ausfertigung verkaufen wollen, ist ein normaler Wunsch in einem kapitalistisch geprägten System. Wenn Du Zugriffskomponenten für Firebird suchst weil Du damit arbeiten MUSST, weil Du Geld verdienen willst, dann kauf dir IBDAC, FIBPlus oder sonst eine Bibliothek, Empfehlungen dazu gibt es im Forum mehr als genug. Ich persönlich würde nicht (nie) einen DBX-Treiber verwenden. Und wenn ich die Dinger runter lade, entpacke und mit Delhi 2010 das Projekt kompiliere, kommen folgende Dinger: 1. Fehlermeldung dass eine DLL nicht gefunden wurde - Lösung: Alle DLLs des Treibers in das Verzeichnis der exe kopieren 2. Fehlermeldung DLL C:\Program Files\Firebird\Firebird_1_5\bin\fbclient.dll nicht gefunden - klar ich habe auch FB 2.1 installiert, also Pfad ändern und der steckt in der ini-Datei drin, also flux geändert 3. ne existierende DB angeben Feddig! Ich kann hier keine ungewöhnlichen Hürden feststellen - und ich habe wie gesagt bisher nie mit dbx-Treibern gearbeitet. Grüße |
Re: Connection zu firebird will nicht
Hallo,
Danke für die Antwort. Tatsächlich ist im File History.htm die Information über die Zertifizierung für die letzte firebird Version zu finden. Auf Grund Deines Postings habe ich noch einen Versuch gestartet, und jetzt funktioniert es - muss mich beim letzten Versuch irgendwo vertan haben, vielleicht doch bei Benutzernamen und Password, obwohl ich das ein paar mal überprüft habe. Was ich gerne wissen würde: Zitat:
|
Re: Connection zu firebird will nicht
Weil dbExpress irgendwie etwas "speziell" ist.
|
Re: Connection zu firebird will nicht
Zitat:
Aber hauptsächlich weil es keine eierlegende Wollmilchsau gibt! Und wenn eine Datenbankzugriffsschicht mehr als eine Datenbank unterstützt (also nicht unbedingt Firebird und Interbase, sondern schon eher so was wie MySQL und Oracle), dann kann diese Zugriffsschicht nicht die Besonderheiten von MySQL und auch nicht die von Oracle. Deshalb nutze ich lieber "richtige" Zugriffskomponenten und baue mir entweder selbst eine "Zwischenschicht" ein die es mir ermöglicht unterschiedliche Datenbanksysteme anzubinden oder nutze ein OPF/ORM-Framework (mit allen seinen Vor- UND Nachteilen!). Zitat:
Grüße Lemmy |
Re: Connection zu firebird will nicht
Hmm, aber hast Du nicht dann das gleiche Problem mit Deiner Zwischenschicht, wenn Du Kompatibilität mit verschiedenen Datenbanken brauchst?
Dass Du, wenn Du kompatibel zu vielen Datenbanken sein willst, eine Menge Einschränkungen in Kauf nehmen musst, und dass das wirklich sehr einschränkend sein kann, ist zweifellos richtig - der kleinste gemeinsame Nenner ist sehr oft VIEL kleiner als jedes einzelne Element. Aber die Einschränkungen liegen doch mehr im Bereich der Verwendung der Datentypen und Sprachelemente als im Bereich der Schnittstelle selbst, oder sehe ich das falsch? Zitat:
Zitat:
|
Re: Connection zu firebird will nicht
Zitat:
Zitat:
so sieht die typische 08/15 DB-Anwendung in Delphi aus: GUI ---- Datenbank Die Datenbank ist mehr oder weniger direkt durch Datensensitive Komponenten an die GUI angeschlossen. Wenn Du jetzt was wie Zeos oder DBX einsetzt siehts wegen mir so aus: GUI ---- Zugriffsschicht ---- Datenbank Wobei hier schon eingeschränkt werden muss, dass durch die enge Verzahnung von DBX und Zeos mit der GUI, diese nicht ohne weiteres ausgetauscht werden können. Und so sieht es mit einem OPF aus: GUI ---- BOM (Business Object Modell) ---- Datenbankzugriffsschicht ---- Datenbank Oder sogar so: GUI ---- BOM-Zugriffsschicht ---- BOM --- DB-Zugriffsschicht --- Datenbank Und schon kann ich die Datenbank auswechseln und könnte sogar die Oberfläche auswechseln (z.B: von der VCL auf die Lazarus-Bib, oder NoVCL, oder Intraweb oder sonst was....) Denn wenn ich hier eine Schicht auswechsle (z.B: die Datenbank), dann muss ich lediglich die entsprechende ZUgriffsschicht anpassen und der Rest bleibt gleich. Aber nochmal: Das ganze Thema ist nicht gerade trivial und in einem Tag zu lernen - aber ziemlich spannend! |
Re: Connection zu firebird will nicht
Zitat:
Das einzige, das mir in der Richtung untergekommen ist, ist die Datenbank Cache von Intersystems, die habe ich mir auch kurz angeschaut. Aber erstens kann man sie von Delphi aus nur über ODBC ansteuern, und zweitens ist das doch ein richtiger "Exote". Wobei das zweite wahrscheinlich kein gutes Argument ist, weil alles in der Richtung momentan noch eher exotisch ist. Danke jedenfalls für die Hinweise, jetzt werde ich mir einmal die verschiedenen Programme, die ich heruntergeladen habe, genauer anschauen und ein bisschen herumprobieren. Bis demnächst |
Re: Connection zu firebird will nicht
Achtung Eigenwerbung:
![]() ein paar Infos zu OPF cu |
Re: Connection zu firebird will nicht
Sehr interessant und lesenswert -
Zitat:
|
Re: Connection zu firebird will nicht
|
Re: Connection zu firebird will nicht
fein, danke!
|
AW: Connection zu firebird will nicht
OffTopic Beiträge zum Thema dbEspress und Alias wurde in Thread
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:51 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 by Thomas Breitkreuz