Обработчик ошибок - VB
Формулировка задачи:
Помогите перехватить событие удачного/неудачного подключения к базе данных СКЛ из АСП страницы. Может есть какаято функция ????
Решение задачи: «Обработчик ошибок»
textual
Листинг программы
Private Sub cmdOK_Click() <br> <font color="blue">On</font> Error <font color="blue">GoTo</font> erm <br> <font color="blue">Set</font> cnMain = New ADODB.Connection <br> cnMain.ConnectionString = <b><font color="green">"FILE NAME="</font></b> & App.Path & IIf(<font color="blue">Right</font>(App.Path, <b><font color="darkblue">1</font></b>) = <b><font color="green">"\"</font></b>, <b><font color="green">"", "</font></b>\<b><font color="green">") & apcUDL_File <br> cnMain.CursorLocation = adUseClient <br> cnMain.<font color="blue">Open</font> , txtName, txtPassw <br> <br> Dim cmdRole <font color="blue">As</font> New ADODB.Command, rs <font color="blue">As</font> ADODB.Recordset <br> <font color="blue">With</font> cmdRole <br> .ActiveConnection = cnMain <br> .CommandType = adCmdText <br> .CommandText = "</font></b><font color="blue">SET</font> NOCOUNT <font color="blue">ON</font><b><font color="green">" <br> .<font color="blue">Execute</font> <br> .CommandText = "</font></b><font color="blue">SELECT</font> USER_ID() <font color="blue">AS</font> id<b><font color="green">" <br> <font color="blue">Set</font> rs = .<font color="blue">Execute</font> <br> IdUser = rs!id <br> .CommandText = "</font></b><font color="blue">EXEC</font> sp_setapprole <font color="green">'AppRole'</font>, <font color="green">'Ax15bGkN0v'</font><b><font color="green">" <br> .<font color="blue">Execute</font> <br> <font color="blue">End</font> <font color="blue">With</font> <br> <br> <br> frmMain.Show <br> Unload Me <br> Exit Sub <br>erm: <br> Dim ert$, cer <font color="blue">As</font> ADODB.Error <br> <font color="blue">If</font> cnMain.Errors.<font color="blue">Count</font> <> <b><font color="darkblue">0</font></b> Then <br> <font color="blue">For</font> Each cer In cnMain.Errors <br> <font color="blue">If</font> ert$ <> vbNullString Then <br> ert$ = ert$ & vbCrLf <br> <font color="blue">End</font> <font color="blue">If</font> <br> <font color="blue">If</font> cer.Number = -<b><font color="darkblue">2147467259</font></b> Then <br> ert$ = "</font></b>Истёк период ожидания соединения с БД<b><font color="green">" <br> ElseIf cer.NativeError = <b><font color="darkblue">18456</font></b> Then <br> ert$ = "</font></b>Имя пользователя и (или) пароль ошибочны<b><font color="green">" <br> ElseIf cer.NativeError = <b><font color="darkblue">4060</font></b> Then <br> ert$ = "</font></b>База данных отсутствует<b><font color="green">" <br> <font color="blue">Else</font> <br> ert$ = ert$ & cer.Description & vbCrLf & "</font></b> (<b><font color="green">" & CStr(cer.Number) & "</font></b> / <b><font color="green">" & CStr(cer.NativeError) & "</font></b>) <b><font color="green">" & cer.Source & vbCrLf <br> <font color="blue">End</font> <font color="blue">If</font> <br> <font color="blue">Next</font> <br> <font color="blue">Else</font> <br> <font color="blue">Select</font> <font color="blue">Case</font> Err.Number <br> <font color="blue">Case</font> <b><font color="darkblue">432</font></b> <br> ert$ = "</font></b>Отсутствует файл параметров соединения с БД<b><font color="green">" & vbCrLf & Mid$(cnMain.ConnectionString, InStr(cnMain.ConnectionString, "</font></b>=<b><font color="green">") + <b><font color="darkblue">1</font></b>) <br> <font color="blue">Case</font> <font color="blue">Else</font> <br> ert$ = Err.Description & "</font></b> (<b><font color="green">" & CStr(Err.Number) & "</font></b>)<b><font color="green">" <br> <font color="blue">End</font> <font color="blue">Select</font> <br> <font color="blue">End</font> <font color="blue">If</font> <br> cnMain.Errors.Clear <br> MsgBox ert$, vbCritical, "</font></b>Ошибка соединения" <br><font color="blue">End</font> Sub <br>
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д