|
Проблема. ADO - Прерывание асинхронной закачки данных
|
|||
---|---|---|---|
#18+
Столкнулся со следующей проблемой: Надо прервать открытие асинхронного Recordset'a (adAsyncExecute). Использую метод Recordset'a Cancel. В процессе его выполнения управление передается на обработчики различных событий (мышиных, клавиатурных), произошедших во время закачки рекордсета. Затем управление возвращается в процедуру, вызвавшую метод Cancel. Такая реакция наблюдается только для adAsyncExecute рекордсета, но именно такой Recordset мне и нужен - adAsyncFetch и adAsyncfetchNonBlocking не подходят. ситуация воспроизводилась примерно на таком коде: ... Set con = New ADODB.Connection Set rst = New ADODB.Recordset con.CursorLocation = adUseClient con.ConnectionString = " .... " con.Open Set rst.ActiveConnection = con rst.Open "select top 40000 * from MyTable", , , , adAsyncExecute Sleep 2000 rst.Cancel 'при выполнении этого метода происходит передача управления на обработчики событий 'выполнение процедуры продолжается ... Примечание: в том случае, если выбиралось < 30000 записей, выполнение Cancel не прерывалось. Если раньше сталкивались с такой проблемой, расскажите как удалось с ней справиться. Заранее спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2003, 19:04 |
|
|
start [/forum/topic.php?fid=60&fpage=420&tid=2171453]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
27ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 138ms |
0 / 0 |