Обработка ошибок в хранимых процедурах
Forz
Дата: 14.10.2003 14:07:59
У меня возникло 2 вопроса при столкновении с сабжем.
1. Можно ли сохранять в логах все ошибки, которые возникли при выполнении ХП вместе с названием процедуры и строкой, где произошла ошибка ?
2. Можно ли получать эту же информацию( имя процедуры и номер строки с ошибкой) средствами ADO, с помощью которых идет общение с сиквел-сервером ?
Заранее спасибо за ответы.
Александр Спелицин
Дата: 14.10.2003 14:28:10
п.2.
Конечно можно. Точно не помню, у кого из ADOConnection или ADODataSet есть поле Errors. Это коллекция сообщений от сервера. Она содержит весь текст сообщения об ошибке, произошедшей при выполнении процедуры.
Forz
Дата: 14.10.2003 14:32:40
Ни фига подобного... она не содержит информации об имени процедуры и строки, где произошла ошибка... Мануалку читать мы все умеем 8)
LenaV
Дата: 14.10.2003 23:15:50
I do it tak:
pocle mesta gde vozmozhna oshibka stavlu IF
na primer:
if (select count(*) from #temp) = 0 begin
select 'Pochemy-to no records. Ne pravilno'
return
end
V VB ispol'zyu ADO
With cmdExecute
.CommandType = adCmdStoredProc
.CommandText = sProcName
.ActiveConnection = oConnSql
End With
Set rsTest = New ADODB.Recordset
Set rsTest = cmdExecute.Execute
'with multiple errors multiple recordsets are returned
Do While Not (rsTest Is Nothing)
If rsTest.State = adStateOpen Then
Do Until rsTest.EOF
sErrStr = ""
For Each fld In rsTest.Fields
sErrStr = sErrStr & " " & fld.Value
Next
WriteErrLogFile sPath, sErrStr, dDateLoaded --pishy v text file
rsTest.MoveNext
Loop
End If
On Error GoTo Shutdown
Set rsTest = rsTest.NextRecordset
On Error GoTo 0
Loop
vdimas
Дата: 15.10.2003 06:37:22
Лен, а Лен...
1.
Set rsTest = New ADODB.Recordset
Set rsTest = cmdExecute.Execute
Так не надо делать. Первая строчка не нужна, ты затираешь созданный объект второй строчкой.
2. Посмотри все-таки на ADODB.Connection.Erros
Я так думаю, что после просмотра тебе захочется многое переписать
-----
И кто придумал девок программировать заставлять?
Forz
Дата: 15.10.2003 10:07:14
ААААА !!! Никто меня не понимает 8)
Вопрос то как звучал ? Как сохранять в логе сервера информацию об ошибках вместе с названием процедуры и строкой, где ошибка произошла и как эту информацию о процедуре и строке, где ошибка произошла, получить средствами ADO не из лога сервера, а как-то еще...