2

Ich wollte die Desktop-Version von IB XE7 in meiner Entwicklungsumgebung verwenden, aber die Verbindung kann nicht funktionieren.Delphi 10.1 mit Interbase XE7 Desktop in der Rad Studio Entwicklungsumgebung verbinden

Die ursprüngliche App hatte eine vollständige Server-Version von IB verwendet und ich wollte nun die App auf einer kostengünstigeren Einzel-PC-Anwendung ausführen und wählte die IB Desktop-Version.

Das Rad Studio 10.1 Berlin läuft auf einer W7 64bit Virtual Machine. FireDac ist die Datenbankverbindungskomponente. IB XE7 Desktop ist der Datenbankserver auf dem Entwicklungs-PC.

Ziel für die Anwendung ist eine VM mit W7 32bit, mit einem anderen IB XE7 Desktop auf dieser VM.

Ich kann die 32-Bit-App erstellen und eine Verbindung zum IB XE7-Desktop auf dem Ziel-PC herstellen (W7 32bit in einer VM ausführen), nachdem das FireDac-Verbindungskomponenten-Protokollfeld auf 'local' anstelle von TCP/IP geändert wurde. etwas, was ich in Stack Overflow gelesen habe.

Woran ich nicht arbeiten kann, ist die Datenbankverbindung in der Entwicklungsumgebung.

Ich installierte zuerst die 64-Bit-Version von IB, dann entfernte es und versuchte die 32-Bit-Version mit dem gleichen Ergebnis.

Nachdem ich einige Verbindungsprobleme online gelesen habe, habe ich versucht, 'gds_db' und 'localhost/gds_db' in das Servernamenfeld zu setzen, aber es hat immer noch nicht funktioniert, obwohl es den Fehler geändert hat.


Fehler - mit nichts im Servernamen


[FireDAC] [Phys] [IB] nicht verfügbar Datenbank.



Fehler nach 'gds_db' im Servernamen


[FireDAC] [Phys] [IB] konnte nicht abgeschlossen Netzwerk Anfrage Gastgeber "gds_db" setzen.

Die Host-Maschine konnte nicht gefunden werden.

Der angegebene Name nicht in der Hosts-Datei oder Domain Name Services ..


Zuerst versuchte 64-Bit-IB installiert, dann alle gsd-Dateien entfernt fanden die Registry-Einträge und dann, und installiert die 32-Bit gefunden wurde Ausführung. Das Problem bestand immer noch.

Hinweis: Die Datenbank-Workbench 5 verbindet OK mit der Datenbank auf derselben VM.

Irgendwelche Ideen willkommen.

Danke.

James F.

+0

Zwei Dinge: a) Sie müssen den tatsächlichen Instanznamen des Servers überprüfen. Iirc, die "abgesägten" Versionen von IB verwenden etwas anderes als gds_db. b) Suchen Sie in der 'services' Datei unter \ windows \ system32 \ drivers \ etc. Es sollte einen Eintrag wie "gds_db 3050/tcp # InterBase Server" enthalten, der die Server-Instanz benennt. – MartynA

+0

Btw, Sie könnten versuchen, zu sehen, wenn Sie eine Verbindung mit den IBX-Komponenten erhalten können.Ich kann eine Verbindung zu einem lokalen IB XE7 Server herstellen, indem ich den Datenbanknamen der IBConnection auf 'LocalHost: D: \ Delphi \ Interbase \ Databases \ MA.GDB' setze. – MartynA

+0

.GDB ist eine schlechte Dateinamenserweiterung beginnend mit winXP –

Antwort

1

Ich erinnere mich, dass es eine gute Leistung war, Delphi XE8 + Seattle mit IB XE7, insbesondere zu bekommen, ich bekam immer die "nicht verfügbare Datenbank" Fehler beim Versuch, von innerhalb der IDE zu verbinden. Hinweis: Die folgenden Dinge sind notwendig, damit Delphi mit einer lokalen Instanz des vollständigen IB XE7-Pakets arbeiten kann. Die Anforderungen für die Developer- und Desktop-Editionen unterscheiden sich sehr wahrscheinlich, wie in der Dokumentation beschrieben.

Einige der Dinge zu überprüfen sind:

  1. Check in der App Windows-Dienste, die der Server ausgeführt wird.

    Mein Server zeigt sich als

    Interbase XE7 Server gds_db

Wie Sie sehen können, sollte die Dienste App Sie den Namen des Servers sagen.

  1. Wenn Sie wollen, dass es über TPC/IP-Check, dass Sie einen Eintrag in Ihrem \ windows haben eine Verbindung \ system32 \ drivers \ etc \ Service-Datei wie diese

    gds_db 3050/tcp # Interbase Server

    Hash-Zeichen developer_ibxe7 3054/tcp # Interbase Server

Die Linie developer_ibxe7 enthält, mit einem # beginnen sollte, aber so wird das nicht angezeigt werden für irgendein Grund. Jedenfalls ist diese Zeile auskommentiert, weil sie sich auf eine Entwickleredition bezieht, die ich irgendwann installiert habe.

  1. Überprüfen Sie, ob Ihr OS-Umgebung einen Eintrag wie dieser

    INTERBASE = d enthält: \ ibxe7

Wenn es nicht der Fall, ist und starte den Rechner neu.

In meinem Fall ist d: \ ibxe7 der oberste Ordner, in dem IB XE7 installiert ist.

Mit diesen Dingen eingerichtet/überprüft starten Sie ein neues Delphi-Projekt in der IDE, fügen Sie eine IBConnection dazu, und setzen Sie DatabaseName auf eine lokale IB-Datenbank. Für mich unter Angabe

Localhost: D: \ Delphi \ Interbase \ Databases \ MA.GDB

funktioniert gut. Überprüfen Sie dann, ob Sie die Connected-Eigenschaft auf True festlegen können. Wenn Sie nicht können, hinterlassen Sie einen Kommentar und ich werde sehen, was ich sonst noch erinnern kann.

+0

embarcadero.com/ru/products/interbase/product-editions behauptet ausdrücklich Desktop Edition hat keinen eigenständigen "TCP Listening Server" –

+0

Es funktioniert jetzt; Gelobt sei allen. –

+0

@JamesFergus: Ich bin froh, dass es funktioniert hat, aber welche Änderung (en) in deinem Setup haben den Unterschied gemacht? – MartynA

Verwandte Themen