Entwickler-Ecke

Datenbanken - prüfen ob DB2 Datenbank erreichbar


Bronstein - Do 27.03.08 14:17
Titel: prüfen ob DB2 Datenbank erreichbar
Hallo,
ich habe ein kleines Tool geschrieben, das sich mit einer DB2-Datenbank verbindet.

Jetzt möchte ich das Programm auch an Rechnern nutzen die keine Verbindung zur Datenbank haben (Subnetz).

Hier zu möchte ich Abfragen, ob ich Zugriff auf die Datenbank habe. Und falls ich kein Zugriff habe, werden einige Features ausgeblendet.

Wie kann ich also prüfen ob die Datenbank verfügbar ist.

Ich könnte ja AdoConnection.Open in eine Try/Except-Block machen und bei einem Fehler ist die Datenbank nicht verfügbar. Das gefällt mir aber nicht, gibt es da noch ein andere Möglichkeit?

Der ConnectionString sieht folgendermaßen aus:

Quelltext
1:
MSDASQL.1;Persist Security Info=False;Extended Properties="DSN=ABC01;UID=abc01;MODE=SHARE;DBALIAS=ABC01;                    


MAlsleben - Fr 28.03.08 22:51

Hi,

ich habe das ganze mit der Indy tcpclient komponete gemacht. Einfach geprüft, ob er den DB2 Port (446) der Maschine in einer bestimmten Zeit connecten kann, wenn nicht entsprechende aktion ausführen.

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
// Verbindungsprüfung
   try
      IdTCPCli1.Connect(25);
      VerbLoc := true;
   except
      on E: exception do
        begin
        Memo1.Lines.Add(datetimetostr(now)+' '+E.message);
        VerbLoc:=false;
      end; //on
   end;// try
   IdTCPCli1.Disconnect;
   if VerbLoc = true then   // 1.if
   begin
  ......
   end
   else   // 1. if
   begin
      Application.Messagebox('Sie befinden sich nicht im lokalen Netz, '+
                             'deshalb ist diese Operationm nicht zulässig!',
                             'F E H L E R !',MB_OK + MB_IconStop);
      Memo1.Lines.Add(datetimetostr(now)+' Abruch , weil nicht im lokalen Netz');
   end; //else



Gruß Micha