powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не могу закрыть ADODB.Recordset в обработчике ошибок
2 сообщений из 2, страница 1 из 1
Не могу закрыть ADODB.Recordset в обработчике ошибок
    #32555869
Elena Gadjieva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня следующая проблема.
Работаю в процедуре с запросом.
Ado_Rs.Open "SELECT dbo.Call.* FROM dbo.Call", MyCnn, adOpenKeyset, adLockOptimistic, adCmdText,
где MyCnn - это ADODB.Connection. Если произошла какая-то ошибка (не связанная с данным запросом) в процедуре, а Ado_rs уже открыт, то в обработчике ошибок при попытке ado_rs.Close возникает следующая ошибка: Operation is not аllowed in this context (№3219). При этом, Ado_rs.State=1. Не могу в Help найти, что означает эта ошибка. Может кто-то сталкивался?

Заранее спасибо за отклик.
...
Рейтинг: 0 / 0
Не могу закрыть ADODB.Recordset в обработчике ошибок
    #32555929
Фотография neal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно повесить обработчик ошибок

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
...
Dim Ers as ADODB.Errors
        ...
        Set Rs1 = Cmd.Execute
        Set Rs1.ActiveConnection = Nothing
        If Rs1.state = adStateClosed Then
            Set Ers = Cmd.ActiveConnection.Errors
            Create_spRecordset = - 1 
            Set Rs1 = Nothing
            Call RegisterUserError(Cmd.Parameters( 0 ).Value, Ers, Frm.Name)
        End If
        If CheckRecordCount And Rs1.RecordCount =  0  Then
            Create_spRecordset = - 1 
            MsgBox "Нет записей!", vbCritical
        End If
    End If
Ex: Set Ers = Nothing
    Set prm = Nothing
    Set Cmd = Nothing
    Exit function
Er:
    Create_spRecordset = Err.NUMBER
    MsgBox Err.Number & vbCrLf & Err.Description, vbCritical
    Resume Ex
End Function

Function RegisterUserError(ErrorValue As Long, CurrentErr As ADODB.Errors, HyIsCalling As String)
    MsgBox "Ошибка " & str(ErrorValue) & vbCrLf _
        & CurrentErr.Item( 0 ).Description, vbExclamation, _
        "При выполнении хр.проц. " & HyIsCalling
End Function
Будет все корректно
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не могу закрыть ADODB.Recordset в обработчике ошибок
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]