czy serwer działa

0

Witam, w jaki sposób można sprawdzić, czy serwer bazodanowy działa?
Próbowałem coś takiego:

try
    ADOConnecion1.connect;
except


end;

ale nadal wyświetla własny komunikat o błędzie.
Używam komponentów ADO oraz SQL Servera 2005.

0

Może masz włączony tryb asynchroniczny. Spróbuj obsłużyć jakieś zdarzenie w stylu OnError.

0

A jeśli program już jest połączony i nagle serwer przestanie działać, to AdoCommand nadal na status połączony, a wykonanie jakiejkolwiek operacji na oknach w programie sypie błędami o połączeniu.
Jak można się przed tym zabezpieczyć ?

0
Pele2 napisał(a)

A jeśli program już jest połączony i nagle serwer przestanie działać, to AdoCommand nadal na status połączony, a wykonanie jakiejkolwiek operacji na oknach w programie sypie błędami o połączeniu.
Jak można się przed tym zabezpieczyć ?

Może StartTransaction dać do osobnej obsługi wyjątków? W tym miejscu wyjątek wskazuje na awarię bazy danych.

0

Nie dowiesz sie, ze serwer umarl dopoki nie wykonasz jakiejs operacji. Niestety. Co znaczy, ze jesli chcesz miec absolutna pewnosc, ze dane zapytanie nie rzuci wyjatkiem, to musisz sobie opakowac wywolanie zapytania, po wykonaniu sprawdzic czy nie poleci wyjatek o konkretnym kodzie i polaczyc jeszcze wtedy.

0

Luknij sobie to: http://4programmers.net/Delphi/Gotowce/Obsługa_SQL_w_aplikacji
Jakby coś, to mam trochę nowszą wersję zdaje się.

Poza tym mi taka konstrukcja:

try
  ADOConnection.Connect;
except
  //coś tam
end;

wystarcza, nic się nie pojawia.

0

try
ADOConnection.Connect;
except
//coś tam
end;

i tak właśnie mam. Ale jeśli połączenie nastąpi prawidłowo, a później na serwerze nastąpi awaria, to przecież nie ADOConnecion wywali błąd tylko DataSet na formie, prawda ?

0

No to operacje na tymże datasecie też opakuj trajem

try

.Open;

except
// ew. reconnect po sprawdzeniu klasy wyjątku
end;

Łatwo to dopicować - stosunkowo prosto przygotować przypadki testowe ; )

b

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