AdoDB - sprawdzanie podłączenia z MsSQL

0

Witam

Jestem troszkę zielona z progamowania w Delphi a mam pewien projekt bez specyfikacji.
Opis problemu:
program łączy się z bazą na MSSQL'u poprzez AdoDB, który to komponent nie posiada własności informowania iż padło połączenie z bazą(lub nie ma go).
Jak sprawdzić czy baza jest aktywna(serwer chodzi)?

Próbowałam tak[funkcja sprawdzająca:Bool]:

var
  qSch : TADOQuery;
begin
qSch := TADOQuery.Create(nil);
    with qSch do
    try
      qSch.Connection := SQLConn;
      SQL.Clear;
      SQL.Add('SELECT 1');//<--- w tym miejscu zawisa mi na __aż__ 10 sekund i się wywala
      qSch.Open;
    except on E: Exception do
      begin
           result := false;
      end;
    end;
    if(result and Assigned(qSch)) then 
          qSch.Free;
  end;

Jak zrobić sprawdzanie połączenia z bazą na MsSQL'u szybciej i ładniej????

Pozdrawiam,
Ania.
p.s. przy zerwaniu połączenia działa, ale przy sprawdzaniu czy można je wznowić wywala się :(

0

Wystarczy zrobić: ADOConnection.Connected:=true :)
Jeśli to pójdzie, to połączenie jest. Jeśli nie, to nie ma.
Timeout jest we właściwości zdaje się ConnectionTimeout(z pamięci). Po tym czasie(podanym w sekundach) wywali się, jeśli połączenia nie będzie. Inaczej się chyba nie da sprawdzić, czy połączenie jest.
Napisałem kiedyś klasę TSQLManager, jest w gotowcach albo w artykułach, tam to jakoś rozwiązałem, ale to bardziej na wyczucie. Okazuje się, że nr błędu jest zły, ale jakiś sposób to jest. Weź se tą klasę i popatrz, co tam jest. Może coś Ci da.

1 użytkowników online, w tym zalogowanych: 0, gości: 1