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

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


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

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

10   голосов , оценка 3.4 из 5