Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.03.06;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "Базы";
Текущий архив: 2003.03.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.008 c
3-16932
Сергей
2003-02-16 01:39
2003.03.06
clientdataset


1-17187
Ross
2003-02-21 19:21
2003.03.06
LookupListBox


14-17361
Ал
2003-02-18 12:47
2003.03.06
Подскажите, где найти бесплатные HELP-редакторы?


3-16869
чайниконутый
2003-02-15 17:17
2003.03.06
DBF таблица


3-16909
nkrainev
2003-02-14 22:05
2003.03.06
Повтор вопроса - как выполнить запросы без ошибок?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский