AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird installiert

Ein Thema von hanspeter · begonnen am 10. Sep 2007 · letzter Beitrag vom 10. Sep 2007
Antwort Antwort
Seite 1 von 2  1 2      
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#1

Firebird installiert

  Alt 10. Sep 2007, 09:10
Hallo,
ich habe im Forum keine Antwort gefunden.

Wie kann ich aus Delphi heraus prüfen, ob Firebird installiert ist.
Ein Programm erzeugt die Datenbank.
Im Moment habe ich den Aufruf TibDatabase.CreateDatabase mit try except
gekapselt und fordere im exept auf, die Datenbank Installation zu prüfen.

Ich hätte es gern eleganter, so daß bereits beim Start des Programms eine
Meldung kommt: "Bitte installieren Sie erst die Datenbank".

Für einen Tip dankbar.

Gruß
Peter
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Firebird installiert

  Alt 10. Sep 2007, 09:17
Muss das DBMS lokal laufen?
Dann könnte man nach dem Namen des Dienstes suchen.
Oder auf den Port zugreifen, Service API verwenden.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#3

Re: Firebird installiert

  Alt 10. Sep 2007, 09:27
Moin, moin in die Runde,

würde nacheinem offenen Port auf 3050 schauen: PortScan.

Grüße // Martin
Martin Schaefer
Phaeno
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.350 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Firebird installiert

  Alt 10. Sep 2007, 09:30
Hi,

ich denke, dass Exceptionbehandlung hier schon richtig ist.
Es sollte auch ein Ereignis onError oder so an der Connection geben.
Dann kann man sehr elegant die Errorcodes auswerten:
Delphi-Quellcode:
case ERRCODE of
  isc_login {335544472}: msg := 'Benutzername oder Passwort falsch';
  isc_shutdown{335544528}: msg := 'Datenbank heruntergefahren - Wartung';
  isc_network_error{335544721}: msg := 'Kein Server gestartet';
  ...
end;
Cu, Frank
Frank Reim
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.875 Beiträge
 
Delphi 12 Athens
 
#5

Re: Firebird installiert

  Alt 10. Sep 2007, 09:40
- um zu ermitteln, ob denn überhaupt eine Datenbankverbindung möglich ist, würde ich erst einmal nachgucken, ob die Client-DLL da ist.
- wenn der DB-Server lokal vorliegen soll (warum auch immer) würde ich nachgucken, ob der entsprechende Dienst installiert ist
Dannach dann das beschriebene Exceptionhandling, da ein installierter DB-Dienst bzw. eine vorliegende Client-DLL noch keine Funktion garantiert

Gruß

onlinekater

PS: @mschaefer Von der Überprüfung des Ports kann ich nur abraten, da dieser für den Firebird/Interbase frei wählbar ist. Außerdem, wer garantiert mir, dass nicht irgend jemand anderer den Port für sich registriert?
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  Mit Zitat antworten Zitat
Amiga-Fan

Registriert seit: 22. Sep 2005
6 Beiträge
 
#6

Re: Firebird installiert

  Alt 10. Sep 2007, 09:41
du kannst beim programmstart das datenmodul createn und wenn dabei eine exception auftritt, ist Firebird nicht installiert, so habe ich es gemacht und es funktioniert.
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Firebird installiert

  Alt 10. Sep 2007, 09:57
Zitat von dataspider:
Hi,

ich denke, dass Exceptionbehandlung hier schon richtig ist.
Es sollte auch ein Ereignis onError oder so an der Connection geben.
Dann kann man sehr elegant die Errorcodes auswerten:
Delphi-Quellcode:
case ERRCODE of
  isc_login {335544472}: msg := 'Benutzername oder Passwort falsch';
  isc_shutdown{335544528}: msg := 'Datenbank heruntergefahren - Wartung';
  isc_network_error{335544721}: msg := 'Kein Server gestartet';
  ...
end;
Cu, Frank
So mache ich es im Moment.
Das Programm ist Bestandteil einer Installation.
Ich möchte eigentlich am Anfang schon prüfen, ob Firebird überhaupt vorhanden ist und wenn nicht,
dann erst die Fb Installation starten.
Da Datenbanken FB 1.5 und >= 2.0 nicht mehr kompatibel sind, müsste ich ja auch noch die installierte
Version prüfen. Der Anwender müsste dann über ein Update entscheiden.
Einfach die neuere Version drüberbüglen, da mache ich mir bestimmt keine Freunde.

Gruß
Peter
  Mit Zitat antworten Zitat
10. Sep 2007, 10:00
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Datenbanken" verschoben.
Ich denke, das ist hier besser aufgehoben.
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Firebird installiert

  Alt 10. Sep 2007, 10:03
Zitat:
Da Datenbanken FB 1.5 und >= 2.0 nicht mehr kompatibel sind,
Warum nicht? Es gibt nur Probleme mit Programmen mit inkorrekten Abfragen, welche beim 2er nicht mehre ignoriert werden.
Ich würde hier auch keine Automatik verwenden, sondern den Anwender fragen. Er könnte ja auch wünschen auf einen externen Datenbestand zuzugreifen. Bei rein lokaler Verwendung wäre vielleicht auch die embedded-Version eine Alternative oder du startest die passende Serverversion, welche du in ein Unterverzeichnis deines Programmes kopierst, bei Programmstart; so machen es auch andere.
Markus Kinzler
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#10

Re: Firebird installiert

  Alt 10. Sep 2007, 10:27
Zitat von mkinzler:
[Warum nicht? Es gibt nur Probleme mit Programmen mit inkorrekten Abfragen, welche beim 2er nicht mehre ignoriert werden.
Ich würde hier auch keine Automatik verwenden, sondern den Anwender fragen. Er könnte ja auch wünschen auf einen externen Datenbestand zuzugreifen. Bei rein lokaler Verwendung wäre vielleicht auch die embedded-Version eine Alternative oder du startest die passende Serverversion, welche du in ein Unterverzeichnis deines Programmes kopierst, bei Programmstart; so machen es auch andere.
Das stimmt so nicht.
Ich verwende (noch) IBObjects und da kann eine FB 2.0 nicht mit Datenbanken, die unter 1.5 erstellt wurden und umgekehrt.
Bereits beim Connect zu der Datenbank kommt ein Fehler.
Für solche Fälle hilft im IBexpert Backup der Datenbank und Restore unter 2.0.
Die Anwendung ist übrigens eine große Netzwerkanwendung, die ich von Paradox auf FB umgestellt habe.
Das Tool muß einmalig auf dem Server laufen und konvertiert die Paradoxdaten nach FB.
Aus diesem Grund muss ich auch prüfen, ob die korrekte FB Version installiert ist.

Gruß
Peter
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz