![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Thread ADO Oracle - Необходимо во время запроса параллельно счи [D7]
helimos © (2004-04-23 10:27:00)Люди 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:00) [1]сделал небольшой тест с ода и провайдером от оакула.
1 запрос в отдельной нитке выполняющийся долго
2 запрос короткий (справочник) (в основной нитке приложения)
настройки твои.. асинхронный запрос выполнился ( и тот и другой )