Tech Tipp #9: InterBase local, RAD Studio und "unavailable database"

Posted by on in Programming

Frage: Ich nutze ein lokal installiertes InterBase. Ich möchte über Datenbankzugriffskomponenten darauf zugreifen. Aber sowohl FireDAC, als auch InterBase Express/IBX geben mir diese Nachricht:

FireDAC:

InterBase Express/IBX:

Folgende Beobachtungen habe ich gemacht:

  • Das passiert nur in der IDE - In der IBConole kann ich auf die Datenbanken zugreifen
  • Die Dateien sind definitiv vorhanden
  • Benutzernamen und -kennwort habe ich richtig eingegeben
  • Stelle ich in IBX auf "Remote" um (mit "localhost") funktioniert es
  • Stelle ich in FireDAC auf "TCPIP" um (mit server=localhost) funktioniert es

Wodran liegt das?

Antwort: Das liegt wahrscheinlich an den Umgebungsvariablen in der IDE vom RAD Studio/Delphi/C++Builder. Es gibt zwei Variablen, die hier zum Tragen kommen und vom RAD Studio für die Verbindung genommen werden. 

  • INTERBASE - Das Verzeichnis der InterBase Installation; 
  • IB_PROTOCOL - Der Instanzname; normalerweise/default "gds_db". Dies ist auch hier weiter dokumentiert. Faktisch ist das die Port-Nummer default:3050) von InterBase

Normalerweise sind diese nicht gesetzt; können aber (gerade bei Mehrfach-Instanzen von InterBase) das Ganze etwas durcheinander bringen. Man muss dann die Variablen setzen bzw ändern.

Generell können die Variablen unter "Tools | Optionen | Umgebungsoptionen | Umgebungsvariablen" gesetzt werden. Normalerweise ist dies nicht nötig, da es nur eine Instanz von InterBase gibt, aber das RAD Studio/Delphi/C++Builder kann man für die Standardwerte hier anpassen

INTERBASE
C:\Program Files\Embarcadero\InterBase
IB_PROTOCOL
gds_db

Nach dem Ändern der Umgebungsvariablen ist ein Neustart der IDE notwendig!


 

Eine andere Möglichkeit für den "unavailable database" Fehler kann InterBase selbst sein: Wenn man die "Developer-Edition" benutzt, nimmt diese nach 48 Stunden keine Verbindungen mehr an. Ein Neustart des InterBase Servers behebt dann auch das Problem.

 



Comments

Check out more tips and tricks in this development video: