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

Вниз

Как заставить recordset в ADO открывать запрос с таймаутом ?   Найти похожие ветки 

 
Rule ©   (2006-03-29 12:20) [0]

Ситуация такая, есть адошный рекордсет, у него есть метод OPEN типа такого
      FrecordSet.Open(FTableName, FConnection, RSCursor, RSLock, RSComandType);
Вопрос, если АДОдрайвер долго не отвечает (он же является драйвером железяки которая в виде таблиц возвращает данные), то эта фигня зависает намертво. Как сделать так, чтобы рекордсет пробовал открыться некоторое время, а потом продолжалось выполнение программы дальше ?
Спасибо всем за внимание ...


 
Rule ©   (2006-03-29 12:48) [1]

хорошо ещё пославлю вопрос под другим углом, у меня есьт переменная RecordSet:_Recordset;  как мне из другого потока во время выполнения команды FrecordSet.Open  прибить єто исполнение ?


 
Дырчик ©   (2006-03-31 05:58) [2]

TCustomADODataSet(TADODataSet).CommandTimeout := ...


 
sniknik ©   (2006-03-31 08:21) [3]

Дырчик ©   (31.03.06 05:58) [2]
зачем сложности с приведением? свойство достутно и в самом TADODataSet

> прибить єто исполнение ?
можеш попробовать сделать Close конекту.

лучше поставить таймаут (up), сам будет "прибиваться".

но вообще, если время критично, переходи на асинхронное выполнение и событийность... т.е. послал запрос прога сразу продолжила выполнятся. данные потребовались (прошло время) читаеш статус, если еще не выполнилось делаеш ему Cansel, ну и продолжаеш дальше, что там у тебя намечено.
и никаких задержек вообще.


 
Rule ©   (2006-04-03 13:17) [4]

sniknik ©   (31.03.06 8:21) [3]
зачем сложности с приведением? свойство достутно и в самом TADODataSet
а я работаю с рекордсетами а не датасетами ... и вобщем надо чтоб провайдер это поддерживал, а у мня не поддерживается ... это я знаю потомучто там по дефалту вроде стоит 30 секунд, а у меня может висеть до бесконечности


 
Rule ©   (2006-04-03 13:18) [5]

sniknik ©   (31.03.06 8:21) [3]
но вообще, если время критично, переходи на асинхронное выполнение и событийность... т.е. послал запрос прога сразу продолжила выполнятся. данные потребовались (прошло время) читаеш статус, если еще не выполнилось делаеш ему Cansel

Санцел виснет до конца выполнения опена, а если опен завис то и кенцел висит, правда при синхронном выполнении если задать команду из другого потока


 
Rule ©   (2006-04-03 13:19) [6]

sniknik ©   (31.03.06 8:21) [3]
а ассинхронное выполнение должно поддерживаться провайдером, или это заложено в самом механизме АДО ???



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

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

Наверх





Память: 0.46 MB
Время: 0.011 c
6-1138382726
Se
2006-01-27 20:25
2006.05.28
По IP определить через какое оборудование связаны компы


15-1146812786
REA
2006-05-05 11:06
2006.05.28
BDS 2006 - скорость загрузки


4-1141976764
V-A-V
2006-03-10 10:46
2006.05.28
Работа с реестром без админских прав


6-1138086770
clickmaker
2006-01-24 10:12
2006.05.28
Indy 10 - IdFtp - HTTP Proxy with FTP support


15-1146502169
KilkennyCat
2006-05-01 20:49
2006.05.28
Поскольку конкурс давно прошел, публикую...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский