Как прекратить асинхронную выборку данных...
Выполняется запрос select. Выбирается долго асинхронно и иногда возникает ситуация что данные еще выбираются но они уже не нужны. Как прекратить выборку данных?
Коннекчусь через AdoConnection и у AdoQuery установлено eoAsyncFetch.
Результата запроса жду в событиии FetchComplete.
Как прекратить выборку данных?
Здравствуйте nikulin_ann, Вы писали:
NA>Как прекратить асинхронную выборку данных...
NA>Выполняется запрос select. Выбирается долго асинхронно и иногда возникает ситуация что данные еще выбираются но они уже не нужны. Как прекратить выборку данных?
NA>Коннекчусь через AdoConnection и у AdoQuery установлено eoAsyncFetch.
NA>Результата запроса жду в событиии FetchComplete.
NA>Как прекратить выборку данных?
Use the Cancel method to terminate execution of an asynchronous method call (that is, a method invoked with the adAsyncConnect, adAsyncExecute, or adAsyncFetch option).
MSDN
На Delphi выглядит примерно так:
AdoQuery1.Recordset.Cancel;
Здравствуйте Алекс, Вы писали:
А>Здравствуйте nikulin_ann, Вы писали:
NA>>Как прекратить асинхронную выборку данных...
NA>>Выполняется запрос select. Выбирается долго асинхронно и иногда возникает ситуация что данные еще выбираются но они уже не нужны. Как прекратить выборку данных?
NA>>Коннекчусь через AdoConnection и у AdoQuery установлено eoAsyncFetch.
NA>>Результата запроса жду в событиии FetchComplete.
NA>>Как прекратить выборку данных?
А>Use the Cancel method to terminate execution of an asynchronous method call (that is, a method invoked with the adAsyncConnect, adAsyncExecute, or adAsyncFetch option).
А>MSDN
А>На Delphi выглядит примерно так:
А>А>AdoQuery1.Recordset.Cancel;
А>
А не лучше ли сделать два запроса:
1 выбираем первые, например 100, записей
SELECT ... TOP 100
2 запускаем одновременно с первым на выборку всех записей.
SELECT * ...
Начинаем работать пока с первым запросом, а когда обработается второй,
переключимся на него
Здравствуйте Максим Алексейкин, Вы писали:
МА>Здравствуйте Алекс, Вы писали:
А>>Здравствуйте nikulin_ann, Вы писали:
[skipped]
МА>А не лучше ли сделать два запроса:
МА>МА>1 выбираем первые, например 100, записей
МА>SELECT ... TOP 100
МА>2 запускаем одновременно с первым на выборку всех записей.
МА>SELECT * ...
МА>Начинаем работать пока с первым запросом, а когда обработается второй,
МА>переключимся на него
МА>
А зачем так извращаться? Можно FetchProgress ловить.
Здравствуйте Алекс, Вы писали:
А>Здравствуйте Максим Алексейкин, Вы писали:
МА>>Здравствуйте Алекс, Вы писали:
А>>>Здравствуйте nikulin_ann, Вы писали:
А>[skipped]
МА>>А не лучше ли сделать два запроса:
МА>>МА>>1 выбираем первые, например 100, записей
МА>>SELECT ... TOP 100
МА>>2 запускаем одновременно с первым на выборку всех записей.
МА>>SELECT * ...
МА>>Начинаем работать пока с первым запросом, а когда обработается второй,
МА>>переключимся на него
МА>>
А>А зачем так извращаться? Можно FetchProgress ловить.
Интересно. Раскажи по подробнее:
' значит запускаем запрос на исполнение
RS.Open ...
' ловим событие
Sub On_FetchProgress ...
'
' И как мне тут воспользоваться уже полученными записями?
'
End Sub