Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   DB-Verbindung mit Interbase (https://www.delphipraxis.net/208257-db-verbindung-mit-interbase.html)

EdAdvokat 5. Jul 2021 09:08

Datenbank: Interbase • Version: 2020 • Zugriff über: FireDAC

DB-Verbindung mit Interbase
 
Hallo werte Datenbankspezialisten,
ich versuche nun sein Monaten immer mal wieder endlich eine Interbase-Datenbank mit Delphi zum Laufen zu bringen. Doch es will einfach nicht klappen und ich finde einfach die Ursache
dafür nicht. Es ist zwar nur für mich allein, doch wenn ich Delphi prof mit den IB-Licensen schon habe, möchte ich es damit auch mal versuchen.
Ich benutze Delphi 10.2 und habe IBLite XE7 Deployment , Interbase 2020 Developer Edition und Interbase 2017 Developer Edition installiert und registriert (Lizenzmanager zeigt alle an).
Ich benutze die Beispieldatenbank Interbase employee.gdb zusmammen mit Firedac.
Wenn ich nun connecten will erscheint stets die Fehlermeldung [FireDAC][Phys][IB] unavailable database für die eingestellte Datenbank employee.gdb. Auch andere Beispiel-IB-Datenbanken
bringen das gleiche Ergebnis.
Auch über dbExpress das gleiche negative Ergebnis.
Was mache ich falsch, denn mit Firebird habe ich keine Probleme und es funktioniert auf Anhieb.
Kann es an den FDConnectionDefs.ini oder ähnliches liegen?
Kann mir jemand auf die Sprünge helfen?

mkinzler 5. Jul 2021 09:13

AW: DB-Verbindung mit Interbase
 
Auf welchem Rechner läuft der Datenbankserver?
Wie erfolgt der Zugriff?

haentschman 5. Jul 2021 09:31

AW: DB-Verbindung mit Interbase
 
Connection String? :wink:

EdAdvokat 5. Jul 2021 09:32

AW: DB-Verbindung mit Interbase
 
Der Datenbankserver läuft auf dem gleichen Rechner und Zugriff erfolgt local.

haentschman 5. Jul 2021 09:38

AW: DB-Verbindung mit Interbase
 
Port? Firewall? :wink:
localhost oder 127.0.0.0?

PS: Immer in der Entwicklung die Servervariante benutzen und kein Embedded!

EdAdvokat 5. Jul 2021 09:41

AW: DB-Verbindung mit Interbase
 
Auszug aus der FDConnection.ini nur die IB-Zugriffe:
[FDConnectionDefs.ini]
Encoding=UTF8

[ibTest]
Database=C:\Users\Public\Documents\Embarcadero\Stu dio\19.0\Samples\Data\EMPLOYEE.GDB
User_Name=SYSDBA
Password=masterkey
DriverID=IB2017

[IB_Employee]
Database=C:\data\interbase\employee.gdb
User_Name=SYSDBA
Password=masterkey
DriverID=IB2017

[IB2020_T1]
DriverID=IB
Database=C:\data\interbase\dbdemos.gdb
User_Name=SYSDBA
Password=masterkey


[DBDEMOS]
Database=C:\Users\Public\Documents\Embarcadero\Stu dio\19.0\Samples\Data\dbdemos.gdb
User_Name=SYSDBA
Password=masterkey
DriverID=IB

Zugriff über localhost und auch mit 127.0.0.0 stets das gleiche Ergebnis

haentschman 5. Jul 2021 09:49

AW: DB-Verbindung mit Interbase
 
FireBird und Interbase gleicher Port? 3050?
http://docwiki.embarcadero.com/Inter...s_Server_Setup

Ja = Falsch.

EdAdvokat 5. Jul 2021 09:57

AW: DB-Verbindung mit Interbase
 
habe die Firewal raus genommen und wie haenschman gemailt hat 127.0.0.0 mit Interbase 2017. Bei Connectversuch erhalte ich nun folgende Fehlermeldung:
---------------------------
Fehler
---------------------------
[FireDAC][Phys][IB]Unable to complete network request to host "127.0.0.0/3054".
Failed to establish a connection.
unknown Win32 error 10060.
---------------------------
OK
---------------------------

haentschman 5. Jul 2021 10:12

AW: DB-Verbindung mit Interbase
 
nimm mal statt 127.0.0.0 den Computernamen

EdAdvokat 5. Jul 2021 10:16

AW: DB-Verbindung mit Interbase
 
FirDAC Verbindungseditor (IB_Employee) Treiber IB2017 Database ist employee.gdb eingestellt und Protokoll 127.0.0.0 Port 3050. Bei dem Versuch Testen erhalte ich erneut
unavilable databease.
Wäre es möglich mir einfach zum Nachverfolgen eine Form mit einem DBGrid und den richtig eingestellten DataSource, TFDConnection und IbTabellen Einstellungen für die employee.gdb zu übermitteln?
Dann könnte ich möglicherweise die jeweiligen Einstellungen bei mir mit den richtigen Werten vergleichen.

haentschman 5. Jul 2021 10:21

AW: DB-Verbindung mit Interbase
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Interbase 2020 Developer Edition und Interbase 2017 Developer Edition installiert und registriert (Lizenzmanager zeigt alle an)
Zitat:

Originally posted by Dinnus Dieter View Post
Hi,

es hat sich aufgelößt. Der Fehler lag an der License! Warum deswegen nur Local-Betrieb funktionierte, ist mir nicht klar.

Danke Markus!

Dieter
Das scheint eine Beschränkung der Developeredition zu sein. Du könntest mal Testen, ob es mit FireBird funktioniert.
:gruebel: Kann ich grad nicht bestätigen oder dementieren... Wie war denn das...mit Computernamen oder IP hat man immer die Serverversion. :gruebel: Embedded ohne Namen?
Probiers aus.

Nachtrag:
sollte gehen (Bild)

mikhal 5. Jul 2021 10:26

AW: DB-Verbindung mit Interbase
 
Die Beschränkung auf lokalen Zugriff ist durch deine Delphi-Version (Professional) gegeben. Für den Zugriff auf eine xxterne Datenbank benötigst du mindestens die Enterprise-Version.
Grüße
Mikhal

EdAdvokat 5. Jul 2021 10:34

AW: DB-Verbindung mit Interbase
 
eigentlich wollte ich so wie mit Firebird einfach so auch eine IB-Datenbankverbindung herstellen. Das war mein Ziel, doch vermutlich geht das wohl so nicht. Das ganze Server-Gesims
ist mir doch etwas zu überdimensioniert, obwohl ich zurückliegend sowohl MSSQL, Postgrade usw. auch schon hinbekommen habe, doch das ist en anderes Thema.
Kann ich mit den von mir in Post #1 genannten Licensen einfach so eine IB-Datenbank genau wie mit FB einbinden?

mikhal 5. Jul 2021 10:43

AW: DB-Verbindung mit Interbase
 
Du hast drei verschiedene IB-Server auf deinem Rechner, finde erst mal raus, auf welchem Port die horchen. Port 3050 ist der Standard-Port für Firebird und IB.

Ich denke, dass du mit Port 3050 den Server erreichst, auf dem deine Datenbank nicht gehostet wird.

Grüße
Mikhal

EdAdvokat 5. Jul 2021 11:23

AW: DB-Verbindung mit Interbase
 
mit der neuen Einstellung Protokol ipLocal, Port 3051 und meinem Servernamen W10-NW erhalte ich nun eine connection in der Einstellung von TFDConnection. Also sollte ich nun eine
Verbindung zu meimem localen Server haben - oder?
Auch kann ich jetzt den Tabellennamen zuordnen und TFDTabelle auch active=true schalten. Doch im DBGrid tut sich nichts und beim compilieren erhalte ich folgende Fehlermeldung:
---------------------------
Anwendungsfehler
---------------------------
Exception EFDException in Modul pTest1.exe bei 00000000003AB37C.

[FireDAC][Phys][IB]-314. Laden der Herstellerbibliothek [c:\users\public\documents\embarcadero\interbase\re dist\interbase2017\win32\gds32.dll] nicht möglich. Library has unsupported architecture [x86]. Required [x64].

Hinweis: Überprüfen Sie, ob sie sich im PATH oder in Anwendungs-EXE-Verzeichnissen befindet und eine Bitanzahl von x64 hat.


---------------------------
OK
---------------------------
Das Programm wird mit 32 bit Windows compiliert. Vermutlich läuft aber ein 64 bit Server ich werde das mal prüfen.

haentschman 5. Jul 2021 11:28

AW: DB-Verbindung mit Interbase
 
Zitat:

Port 3051
...da war die Glaskugel geputzt...war der verkehrte Port oder? :P

Wenn du das Programm compilierst:

DB Server 64Bit
32bit -> 32bit DLL
64bit -> 64bit DLL

hstreicher 5. Jul 2021 11:48

AW: DB-Verbindung mit Interbase
 
Zitat:

Zitat von haentschman (Beitrag 1491871)
Port? Firewall? :wink:
localhost oder 127.0.0.0?

das sollte wohl 127.0.0.1 heissen

mfg Hannes

mikhal 5. Jul 2021 11:51

AW: DB-Verbindung mit Interbase
 
Vielleicht hilft dir das weiter: Connect_to_InterBase_(FireDAC)

Grüße
Mikhal

haentschman 5. Jul 2021 11:57

AW: DB-Verbindung mit Interbase
 
Zitat:

das sollte wohl 127.0.0.1 heissen
...das war Absicht, damit sich man sich nicht selbst hacked. :stupid:
Klassiker: http://www.lustigestories.de/stories/irc_hacker.php

EdAdvokat 5. Jul 2021 12:04

AW: DB-Verbindung mit Interbase
 
also es lief der 64bit-Server. wurde gestoppt und 32bit-Server gestartet. Danach war in Delphi wieder alles futsch - sprich der Zugriff auf die Datenbank über Port 3051 funktioniert nicht mehr.
es wird mir mitgeteilt, dass keine Verbindung hergestellt werden konnte, da der Zielcomputer die Verbindung verweigert. Firwall ist noch immer ausgeschaltet und Versuche mit Port 3050, 3051, 3052..54
funktionieren nicht. Wie kann ich den Zugang zum "Zielcomputer" gewähren? Kann ich irgendwo einen Port freigeben?

mikhal 5. Jul 2021 12:37

AW: DB-Verbindung mit Interbase
 
Schau mal in den unteren Bereich des folgenden Links, da findest du etwas zum IBGuard Man sollte richtig lesen...
Schau dir mal den Interbase Server Manager an:
InterBase_Server_Manager
Dort gibt es einen Button "Server Properties". Ich denke, da findest du dann auch den richtigen Port.

Grüße
Mikhal

EdAdvokat 5. Jul 2021 13:47

AW: DB-Verbindung mit Interbase
 
ich will mal ganz vorsichtig vermelden, dass es geklappt hat und ich die database employee.gdb von IB im DBGrid zum Laufen gebracht habe.
Manchmal hilft ein Rechnerneustart doch und somit ging es mit dem Port 3051, um auf den localen Server zuzugreifen.
Komisch ist jedoch, dass im Hintergrund der IBServer 64bit ! läuft?! Jedenfalls geht es. Der 64bit Server wird automatisch mit Windowsstart ausgeführt.
Wenn ich den 32bit Server manuell aufrufe geht es nicht. Sicher bleiben da noch einige Hügel des Begreifens stehen.
Ich bin erst einmal froh nach so langer Zeit des Probierens das Ding zum Laufen gebracht zu haben.

Unklar ist mir jedoch noch immer, was könnte ich denn mit der IBLite XE7 license anfangen?
Was müßte ich tun, damit ich eine IB-Database genauso wie mit Firebird-Database ohne Server in Delphi einzubinden könnte. Wären da neue Lizenzen erforderlich?

Jedenfalls bedanke ich mich bei Euch für die Unterstützung und wäre für die Beantwortung der kurzen Fragen dankbar.

mikhal 6. Jul 2021 06:14

AW: DB-Verbindung mit Interbase
 
Dann schau dir mal die Embarcadero-Seite zu den Interbase-Versionen an: Interbase Editionen. Embedded IBLite ist dein Freund.
Grüße
Mikhal

EdAdvokat 6. Jul 2021 08:27

AW: DB-Verbindung mit Interbase
 
Danke Mikhal, ich denke auch das habe ich hinbekommen. Habe dazu ein youtube-Video genutzt. Eigentlich ganz simpel, wenn man einmal die Lösung gefunden hat.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:16 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-2025 by Thomas Breitkreuz