Главная страница
    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.013 c
1-1145336420
Alextp
2006-04-18 09:00
2006.05.28
Выравнивание shortcut-ов в меню


2-1147090246
DimDim
2006-05-08 16:10
2006.05.28
Универсальный ProgressBar


2-1147184917
Mr tray
2006-05-09 18:28
2006.05.28
как узнать хендл активного окна активного приложения


2-1147607318
Ray
2006-05-14 15:48
2006.05.28
Работа со шрифтом


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