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

Thread ADO Oracle - Необходимо во время запроса параллельно счи   Найти похожие ветки 

 
helimos   (2004-04-23 10:27) [0]

Люди help!

Необходимо во время запроса  параллельно считывать
служебную информацию из БД(Oracle 8.1.7).
Работаю через ADO. Delphi7.
Проблемма в том
1) Oracle OLEDB и ADO работает не поддерживает асинхронную передачу с помощью , т.е.
OnFetchProgress и OnFetchComplete не выполняются.
Что провайдер Oracle, что провайдер от Microsoft - результат один.

Пробовал разные настройки ADOConnection и ADOQuery.

Но, как я понимаю, они должны быть:
ADOConnection:
ConnectOptions=coAsyncConnect
CursorLocation=clUseServer

ADOQuery:
ExecuteOptions=[eoAsyncExecute,eoAsyncFetch]

2)Пробовал в параллель пустить Tread,
В обработчике OnWillExecute запускается Tread.
Но проблемма в том, что  основной запрос блокирует этот Tread.

Несмотря на то, что я выставлял в

ADOQuery:
ExecuteOptions=[eoAsyncFetchNonBlocking] которая по идее
- Execution is performed without blocking the thread.

Или я чего-то не понял?

Все-таки сделал с помощью отдельного процесса(*.exe) и ShellExecute, но получилось
совсем неграмотно, коряво и криво.

Так что люди help! Заранее благодарен всем да и наверное
не только я.


 
roottim   (2004-04-23 12:03) [1]

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



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

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



Память: 0.45 MB
Время: 0.022 c
1-1083128507
din
2004-04-28 09:01
2004.05.16
Lookup в гриде


4-1080579766
BorH
2004-03-29 21:02
2004.05.16
Список автозагрузки


1-1082523490
Checist [root]
2004-04-21 08:58
2004.05.16
Фильтрация загрузки фреймов


4-1080568055
Boris_S
2004-03-29 17:47
2004.05.16
как вызвать процесс и дождаться окончания его выполнения?


4-1080047053
Cosinus
2004-03-23 16:04
2004.05.16
Что я делаю не так при работе с SendMessage?




   Наверх