![]() |
Datenbank: Firebird • Version: 2.0 • Zugriff über: Zeos
läuft der Firebird Server ? - ohne vohandene Datenbank
Hallo an alle... :hi:
Ich bräuchte mal wieder die Richtung. :wink: wie kann ich aus Delphi heraus ohne vorhandene Datenbank ermitteln: - ob der Firebird Server im lokalen Netz läuft... ggf. auf welchem Computer - ob der Server reagiert sprich funktionsfähig ist Hintergrund: - Ich möchte das im Vorfeld prüfen bevor eine Datenbank erzeugt wird. Macht Sinn oder ? :gruebel: - Ich hatte bei einer Ferninstallation per Telefon meines Programmes das Problem, daß immer ein Verbindungsfehler auflief, ich aber evt. Schreibfehler in den Pfadangaben nicht sehen konnte und der Computerfachmann auf der anderen Seite des Telefons versicherte, daß der Server läuft. Mit diversen Tricks haben wir es dann zum Laufen bekommen. - Ich möchte einfach die Erstinstallation "Idiotensicher" machen damit ich weniger telefonieren muß :wink: Danke für Infos... |
Re: läuft der Firebird Server ? - ohne vohandene Datenbank
Du könntest
1.) den Rechner anpingen 2.) prüfen, ob in der Datei %SYSTEM32%\etc\drivers\protocol ein Eintrag vorhanden ist, der mit "gds_db" beginnt Falls der Eintrag fehlt, grosse Fehlermeldung ausgeben, dass der Administrator das ändern muss bzw. selbst versuchen die Zeile
Code:
anzuhängen.
gds_db 3050
3.) über TCP/IP eine Verbindung zum Server über Port gds_db herstellen und gleich wieder schliesen Wenn das klappt stehen die Chancen gut, dass da ein Firebird Server übers Netz erreichbar ist. |
Re: läuft der Firebird Server ? - ohne vohandene Datenbank
Hallo...
Danke für Deine Antwort. Ich habe dann mal bei mir geschaut... :gruebel: Der Eintrag ist bei mir nicht vorhanden und der Server läuft und arbeitet... der Inhalt von %System32%\drivers\etc\protokoll Zitat:
...ich versuche mich parallel durch die Firebirdseite zu forsten :roll: |
Re: läuft der Firebird Server ? - ohne vohandene Datenbank
Der Eintrag existiert nicht, also wurde höchstwahrscheinlich von diesem Rechner noch auf keinen externe FireBird-Server zugegriffen
|
Re: läuft der Firebird Server ? - ohne vohandene Datenbank
Ich bin der Meinung, dass Du das garnicht so machen kannst. Ausser Du prüfst remote, ob der Dienst auf dem Rechner läuft. Wenn der Dienst läuft ist alles gut, ansonsten Fehlermeldung. Es wird nur schwierig, wenn Firebird auf einem Linux-Rechner läuft.
Denn wenn der Firebird-Dienst auf dem Server läuft ist ja noch nicht klar ob Du eine Datenbank erstellen kannst. Deshalb würde ich einfach versuchen, die Datenbank zu erstellen und dann die entsprechende Fehlermeldung ausgeben. Danach kann dann der User dementsprechend handeln. |
Re: läuft der Firebird Server ? - ohne vohandene Datenbank
Danke an alle...
Zitat:
Ich hatte nur die Hoffnung eine Procedure zu haben, wo ich im Ergebnis unterscheiden kann, ob der Server vorhanden / läuft oder nicht oder die Datenbank wegen z.B. unzureichender Schreibrechte auf das Verzeichnis der Wahl des Kunden nicht erzeugt werden kann. Mir geht es um eine Differenzierung. PS: ...ich weiß nicht ob Ihr´s wußtet :wink: erschwerend ist noch, daß ich das ZConnection.Connect in einem try/except Block stehen habe. Nun lese ich im AfterConnect diverse Daten ein. Tritt in einer dieser Einleseproceduren ein Fehler auf läuft das Programm in den except Block von ZConnection.Connect. :gruebel: d.h. ich kann im Moment nicht richtig unterscheiden wo der Fehler auftritt... - Als Lösung fiel mir bisher nur ein, daß ich eine Variable entsprechend der Ablaufposition setze und diese dann im except auswerten kann und somit die Fehlerposition eingrenze. ...andere Vorschläge sind auch willkommen :thumb: |
Re: läuft der Firebird Server ? - ohne vohandene Datenbank
Hallo,
1. setze alle Einlesepürozeduren auch in ein try except 2. oder, erzeuge eigene Exceptions Zu dem Server-Finden-Problem. Du kannst ja das Services-API benutzen. Z.B. die die Versionsnummer auslesen. Dazu muss du aber zumindestens einen gültigen User-Name haben. Heiko |
Re: läuft der Firebird Server ? - ohne vohandene Datenbank
Hi,
Zitat:
Wenn da kein Eintrag ist, vermute ich ganz stark, dass die FB-Installation durch das Entpacken der ZIP-Datei vorgenommen wurde und nicht mit dem Setup-Programm. Zitat:
Delphi-Quellcode:
Hinweis: Den Code habe ich "frei Hand" geschrieben - keinen Anspruch auf Vollständigkeit!
function IsFBServerRunning(AServerIP:String):Boolean;
var oZConnection:TZConnection; begin oZConnection:=TZConnection.Create(); try oZConnection.xxx:=AServerIP; try oZConnection.Connect; result:=true; except result:=false; end; finally FreeAndNil(oZConnection); end; end; wenn Du es noch besonders korrekt machen willst, überprüfst Du im Except-Fall einfach die zurückgelieferte Exception ab und wertest die aus. Noch eine Verbesserung: Du kannst den Server ja vor dem eigentlichen Connect mit der TZConnection auch noch anpingen - dann weißt Du wenigstens dass sich grundsätzlich jemand meldet.... Grüße Lemmy |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:03 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