Вниз
Скачать: CL | DM;

Как избежать ожидания сошединения с БД в АДО.   Найти похожие ветки 

← →
yaJohn ©   (2003-02-16 12:45) [0]

Имеем TADOConnection. База лежит далеко в сети. Говорим ему Connected:=true; Если имеем проблемы с сетью TADOConnection надолго впадает в ступор, после чего сообщает об ошибке.
Вопрос таков: как соединится с базой в фоновом режиме не тормозя все приложение? Т.е. нечто вроде:
TADOConnection.Connected:=true;
........ делаем много полезной работы
if not TADOConnection.Connected then
...база все еще недоступна.

Можно, конечно, посадить Connected:=true; в отдельный поток, но поведение БД-ВЦЛ в потоках вопрос темный и этого метода хотелось бы измежать...

Заранее спасибо.


← →
asmith   (2003-02-16 18:28) [1]

В винде фоновый режим - это и есть отдельный поток. Но можно попытаться предпринять некие действия до соединения с базой чтобы исключить проблемы с сетью. Например, попытаться установить сетевое соединени с удаленным компьютером, на котором расположена база. Примерно так:
var
ntr : NETRESOURCE;
code : DWORD;
buf : array[0..127] of char;
...
StrPCopy(buf, "\\" + ComputerName);
with ntr do
begin
dwType := RESOURCETYPE_ANY;
lpLocalName := nil;
lpRemoteName := buf;
lpProvider := nil;
end;
code := WNetAddConnection2(ntr, "", "", 0);
WNetCancelConnection2(buf, 0, True);
if NO_ERROR <> code then
begin
// тут ничего не удастся сделать, завершаем работу
MessageDlg(bla-bla-bla);
Exit;
end;
// а тут пробуем соединиться через АДО


← →
a_ruslan   (2003-02-16 19:02) [2]

Лучше всего использовать свойство ConnectionOptions установив его в значение coAsyncConnect. Тогда при выполнении команды соединения основной поток пойдет дальше. После прохождения соединения или же возникновения ошибки будет послено событие OnConnectComplete. Его входной параметр Error содержит код ошибки, если она возникла.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.011 c
9-16844
greenrul
2002-10-09 13:49
2003.03.06
Динамическая загрузка wav в WaveList:


14-17331
RV
2003-02-17 10:43
2003.03.06
о киндерах. МАЛЬЧИКИ / ДЕВОЧКИ


14-17386
Ромн
2003-02-19 09:15
2003.03.06
возможно ли обеспечить совместный доступ коднму Excel файлу


6-17243
Скиф
2003-01-08 12:28
2003.03.06
IP-адрес, задание айпишника из проги...


1-17008
Nemo
2003-02-21 02:08
2003.03.06
Помогите, пожалуйста!




   Наверх