Как выполнить асинхронный запрос к SQL БД используя ADO? - VB

Узнай цену своей работы

Формулировка задачи:

Проблема выполнения асинхронного запроса к БД при доступе через ADO версии 2.5 (хранимая процедура на сервере выполняется очень долго, поэтому хочется чтобы клиент был в это время свободен). Ставил опции типа adAsyncExecute и adAsyncConnection в методе Command.Execute - не помогает. Может быть надо что-то еще указать или вообще это делается как-то по другому?

Решение задачи: «Как выполнить асинхронный запрос к SQL БД используя ADO?»

textual
Листинг программы
  1. Dim WithEvents aConnection As ADODB.Connection
  2. Dim bConnectionComplite As Boolean
  3.  
  4. Private Sub aConnection_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)
  5.  
  6.  bExecComplited = True
  7.  
  8.  If adStatus <> adStatusOK Then
  9.   MsgBox pError.Description & vbCrLf & pError.SQLState & vbCrLf & pError.NativeError
  10.  End If
  11.  
  12. End Sub
  13.  
  14. Public Sub AsyncExec()
  15.    Dim aCommand As ADODB.Command
  16.    Dim aRecordSet As ADODB.Recordset
  17.  
  18.  Set aCommand = New ADODB.Command
  19.  
  20.  With aCommand
  21.   .Name = 'Query1'
  22.  .CommandType = adCmdStoredProc
  23.   .CommandText = 'dbo.tar_CountryGetList'
  24.  .Parameters.Append .CreateParameter('return_code', adInteger,                                                               adParamReturnValue, 4)
  25.  Set .ActiveConnection = aConnection
  26.  End With
  27.  
  28.  bExecComplited = False
  29.  Set aRecordSet = aCommand.Execute(, , adAsyncExecute)
  30.  
  31.  While Not bExecComplited    
  32.    DoEvents
  33.  Wend
  34.  
  35. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы