2014-09-17 4 views
1

Я продолжаю получать сообщение об ошибке при запуске этого кода из обработчика ошибок.Vb6 ошибка вызова хранимой процедуры

Все, что мне нужно сделать, это передать переменную в хранимую процедуру, которую я создал, У меня есть форма, содержащая вид списка и кнопку повторного включения.

Когда я выбираю вопросник в представлении «Список» и затем повторно активирую его, он должен отправить действительный идентификатор вопросника в хранимую процедуру.

Вот код:

Private Sub btnReActivate_Click() 
    strModuleName = "frmReport.Reactivate" 
    Dim oConn As ADODB.Connection 
    Dim objCmd As New ADODB.Command 

    On Error GoTo ErrorHandler 

    Set oConn = GetConnection 

    If oConn.State = adStateOpen Then 
     Set objCmd = Nothing 
     With objCmd 
      .CommandText = "sproc_Reactivate" 
      .CommandType = adCmdStoredProc 
      .ActiveConnection = oConn 
      ' Refresh the parameters collection and populate it 
      .Parameters.Append _ 
       objCmd.CreateParameter("@ID", adInteger, adParamInput, , Mid(LV.SelectedItem.Key, 2, Len(LV.SelectedItem.Key) - 2)) 
     End With 
     ' Execute the command 
     objCmd.Execute 
    End If 

ErrorHandler: 
    MsgBox GetMessage("frmModule1", 1, True, "Module: " & strModuleName & " Line: " & Erl & " - " & Err.Number, Err.Description), vbCritical, "Manage" 
End Sub 

Я получаю: "Ошибка Ссылка: [Модуль frmReport.Reactivate Line: 0-0] - []"

+0

Вы не упомянули об ошибке вы получите. Возможно, также временно закомментируйте инструкцию 'On Error' и пусть отладчик поймает ее вместо этого. Как побочное замечание, ваш заголовок не очень конструктивен, и фактическая проблема не имеет ничего общего с тем фактом, что есть инструкция обработки ошибок. Вы должны изменить его, чтобы отразить проблему (ADODB); это также поможет привлечь нужных людей. – MicroVirus

+0

Спасибо за ответ. Я изменил эту должность. – WhiteSpider

ответ

3

Ваш код немного неполного, так как отсутствует часть ErrorHandler, но есть ли Exit Sub перед меткой ErrorHandler:? Похоже, из ошибки, что функция успешно завершена, а затем попадает в процедуру ErrorHandler через обычный поток кода.

Обычно в VB6, форма обработчика ошибки:

On Error GoTo MyErrorHandler 

... lots of code here 

'If we reach this point, we have a successful exit 
Exit Sub 

MyErrorHandler: 
... Code to display/handle error here .... 
+0

Вы можете подтвердить, что это так: 'Erl',' Err.Number' и 'Err.Description' все пустые/0. – Deanna