Как выполнить асинхронный запрос к SQL БД используя ADO? - VB
Формулировка задачи:
Проблема выполнения асинхронного запроса к БД при доступе через ADO версии 2.5 (хранимая процедура на сервере выполняется очень долго, поэтому хочется чтобы клиент был в это время свободен). Ставил опции типа adAsyncExecute и adAsyncConnection в методе Command.Execute - не помогает. Может быть надо что-то еще указать или вообще это делается как-то по другому?
Решение задачи: «Как выполнить асинхронный запрос к SQL БД используя ADO?»
textual
Листинг программы
Dim WithEvents aConnection As ADODB.Connection Dim bConnectionComplite As Boolean 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) bExecComplited = True If adStatus <> adStatusOK Then MsgBox pError.Description & vbCrLf & pError.SQLState & vbCrLf & pError.NativeError End If End Sub Public Sub AsyncExec() Dim aCommand As ADODB.Command Dim aRecordSet As ADODB.Recordset Set aCommand = New ADODB.Command With aCommand .Name = 'Query1' .CommandType = adCmdStoredProc .CommandText = 'dbo.tar_CountryGetList' .Parameters.Append .CreateParameter('return_code', adInteger, adParamReturnValue, 4) Set .ActiveConnection = aConnection End With bExecComplited = False Set aRecordSet = aCommand.Execute(, , adAsyncExecute) While Not bExecComplited DoEvents Wend End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д