Асинхронное исполнение запроса

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Асинхронное исполнение запроса

Сообщение alibek » 14.04.2003 (Пн) 10:42

Народ, помогите с такой проблемой.
В ADO можно выполнять запрос асинхронно, для этого надо указать параметр adAsyncExecute в методе Execute (.Execute "...",,adAsyncExecute). Тогда "отловить" момент, когда запрос будет выполнен можно при событии ExecuteComplete.
В MSDN дается пример использования такого события на VC++, перегнать его в VB никак не получается.
Разумеется, я использовал что-то вроде
Код: Выделить всё
Private WithEvents cnn As ADODB.Connection

но что-то не идет. Подскажите, кто уже пробовал такое сделать, что не так?
Lasciate ogni speranza, voi ch'entrate.

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 14.04.2003 (Пн) 13:12

Токмо что попробовал, всё получилось без проблем. Проект Standard EXE, код в модуле формы. Версия ADODB - 2.7.
Код: Выделить всё
Option Explicit

Private WithEvents cnn As ADODB.Connection
Private rs As ADODB.Recordset

Private Sub cnn_ExecuteComplete(ByVal RecordsAffected As Long, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pCommand As ADODB.Command, ByVal pRecordset As ADODB.Recordset, ByVal pConnection As ADODB.Connection)
    Stop
End Sub

Private Sub Form_Load()

    Set cnn = New ADODB.Connection
    cnn.Open \ConnectionString\
   
    Set rs = cnn.Execute("select * from kmTopics", , adAsyncExecute)
   
End Sub

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.04.2003 (Вт) 8:35

Действительно... Ничего не понимаю. Я использовал такую конструкцию, на ExecuteComplete вешал оператор Stop и он у меня никогда не выполнялся.
Теперь попробовал еще раз -- заработало.

Ничего не понимаю...


skiperski, шаман! :)
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 212

    TopList