Цитата:
Сообщение от ZAlex
Есть проблема: работаю с удаленной базой данных, связь не стабильна, пробую проверить наличие соединения при помощи конструкции типа:
try
ADOConnection.Connected := True;
except
on E : Exception do
ShowMessage(E.ClassName+' '+E.Message);
но except не срабатывает, выскакивает системная ошибка. Подскажите почему. Или кто-нибудь знает другой способ проверки связи?
|
Я работал не с ADO, но, возможно, ситуация аналогичная.
Во-первых, вопрос: в каком месте выскакивает системная ошибка?
Теперь опишу свой случай. После Connected:=true не факт, что, если связь не получилась, будет исключение (и какая-нибудь ошибка). Ошибка будет позже при проведении, например, запроса к базе, с которой нет связи.
Поэтому
1) exception бесполезен
2) после попытки связи (или перед любой операцией) делайте проверку: if Connected ...
Кстати, в Help'е так и сказано:
Код:
with ADOConnection1 do begin
Open;
if Connected then
{ connection successful }
else
{ connection unsuccessful };