Обработчик ошибок - 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>

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


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

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

13   голосов , оценка 4.154 из 5