![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ADOConnection Delphi 5. Проблемы с ConnectionTimeout [D5, MSSQL]
kva © (2002-11-01 14:22:00)Привет всем!
Использую ADOConnection Delphi 5. Хочу оттестировать ситуацию, когда нет коннекта с сервером MS SQL 2000 и выдать понятное сообщение юзеру. По умолчанию ConnectionTimeout=15. Запускаю при отрубленной связи следующее:
var
T1, T2: TDateTime;
begin
Screen.Cursor:=crHourGlass;
T1:=Time;
try
try
if ADOConnection1.Connected then
ADOConnection1.Close;
//ADOConnection1.CommandTimeout:=StrToInt(medtCommand.Text);
//ADOConnection1.ConnectionTimeout:=StrToInt(medtConnection.Text);
ADOConnection1.Open(UserId,Password);
except
on E: Exception do
begin
T2:=Time;
MessageBox(Application.Handle,
PChar("Не могу присоединиться к базе"#13#10+E.Message+#13#10+
"CommandTimeout ="+IntToStr(ADOConnection1.CommandTimeout)+#13#10+
"ConnectionTimeout="+IntToStr(ADOConnection1.ConnectionTimeout)+#13#10+
"Время реакции ="+TimeToStr(T2-T1)), PChar(Caption), MB_ICONERROR);
end; //on Exception
end; //try except
finally
Screen.Cursor:=crDefault;
end; //try finally
По идее через 15 секунд должно наступить событие.
А у меня независимо от установленных значений свойства ConnectionTimeout (разумеется >0 ) exception наступает через 44 или 45 секунд. :(
Кто знает почему и как изменить? Хочу уменьшить время коннекта до 5 - 15 секунд.
BlackTiger (2002-11-01 21:00:00) [1]Ну вообще-то, насколько я знаю, ConnectionTimeout наступает, когда нет активности в течении установленного времени. Тогда свойство Connected становится false и связь с источником обрывается. Поправьте, если не прав.
А CommandTimeout - это время, сколько может ждать выполнения запроса. После этого времени запрос считается неуспешным и прекращается (если выставить в 0, то будет ждать до полного опупения).
То, что надо, это видимо "General Timeout", который прописывается при создании ConnectionString"а. А может быть и нет, но точно не эти два (ConnectionTimeout & CommantTimeout).
kva (2002-11-01 15:25:00) [2]Может все таки кто-нибудь работал с ADO?