Timeout expired & AdoDB & RecordSet - VB
Формулировка задачи:
добрый день! Подскажите пожалуйста - столкнулся с проблемой. Пытаюсь запустить хранимую процедуру из базы на MS Server 2008. На тестовой процедуре с простым созданием таблицы работает. А на процедуре, которая запускает внутри себя несколько других, выпадает в ошибку Timeout expired и ругается на строчку Set rsData = Cmd.Execute. На сервере все работает - время выполнения хранимой процедуры порядка 4ех часов. И как можно вывести время выполнения на форму? Заранее спасибо!
Решение задачи: «Timeout expired & AdoDB & RecordSet»
textual
Листинг программы
Dim rs As ADODB.Recordset
Dim cmd As ADODB.Command
Set cmd = New ADODB.Command
cmd.ActiveConnection = Connection
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "mysp1"
cmd.Parameters.Append cmd.CreateParameter("RETURN_VALUE", adInteger, adParamReturnValue)
cmd.Parameters.Append cmd.CreateParameter("@Arg1", adSmallInt, adParamInput, , 1234)
cmd.Parameters.Append cmd.CreateParameter("@Arg2", adBSTR, adParamInput, , "test string")
cmd.Parameters.Append cmd.CreateParameter("@Arg3", adDate, adParamInput, , Now())
cmd.Parameters.Append cmd.CreateParameter("@Result1", adBSTR, adParamOutput)
cmd.Parameters.Append cmd.CreateParameter("@Result2", adBoolean, adParamOutput)
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.CursorType = adOpenStatic
rs.LockType = adLockReadOnly
rs.Open cmd
If cmd.Parameters("RETURN_VALUE").Value < 0 Then
MsgBox "Процедура вернула ошибку" & vbNewLine & _
"Параметр Result1 равен: " & cmd.Parameters("@Result1").Value & vbNewLine & _
"Параметр Result2 равен: " & cmd.Parameters("@Result2").Value
Else
MsgBox "Процедура отработала успешно. Получено строк: " rs.RecordCount & vbNewLine & _
"Параметр Result1 равен: " & cmd.Parameters("@Result1").Value & vbNewLine & _
"Параметр Result2 равен: " & cmd.Parameters("@Result2").Value
Do Until rs.EOF
Debug.Print " - строка " & rs.AbsolutePosition & "; " & rs.Fields(0).Value
rs.MoveNext
Loop
End If