powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / SQL, ADO и сообщения об ошибках
4 сообщений из 4, страница 1 из 1
SQL, ADO и сообщения об ошибках
    #32564519
tesia2003
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть такой скрипт процедуры Proc1:

...
BEGIN TRAN
...
if exists (.....трали-вали)
begin
SELECT @errno=40000, @errmsg='Ошибка'
goto error
end

COMMIT TRAN

return
error:
raiserror @errno @errmsg
ROLLBACK TRAN

Когда процедура запускается из Access-ADP (например, через connection.command.execute), при выполнении условия if сообщение "Ошибка" вываливается как положено. Однако, если та же процедура выполняется в другой транзакции - например, EXEC Proc1 из другой процедуры, то сообщение об ошибке не выводится в ADO, хотя транзакция честно откатывается.
Подскажите, пожалуйста, в чем тут дело и как с этим бороться.
Заранее благодарен за Ваши ответы!
...
Рейтинг: 0 / 0
SQL, ADO и сообщения об ошибках
    #32564697
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Однако, если та же процедура выполняется в другой транзакции - например, EXEC Proc1 из другой процедуры, то сообщение об ошибке не выводится в ADO

а часом On Error Resume Next выше нигде не стоит?
Иногда удобно отслеживать ошибку через OutPut параметры, не используя Raiserror.
...
Рейтинг: 0 / 0
SQL, ADO и сообщения об ошибках
    #32565780
tesia2003
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>>а часом On Error Resume Next выше нигде не стоит?

не не стоит!
а вот такая штука

If m_cn.Errors.Count > 0 Then
Debug.Print m_cn.Errors(0).Description
Debug.Print m_cn.Errors(1).Description
End If

выводит Count=2
и сообщения следующего типа:
1. Ошибка! -- т.е., что мне и нужно
2.Transaction count after EXECUTE indicates that a COMMIT or ROLLBACK TRANSACTION statement is missing. Previous count = 1, current count = 0.

Что означает второе? Подскажите плиз!
...
Рейтинг: 0 / 0
SQL, ADO и сообщения об ошибках
    #32565987
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
возможны проблемные места:

автор
raiserror @errno @errmsg

для раисеррор нужно указывать серверити левел чем выше тем лучше (на стадии когда ее не показывают)
иначе это будет не ошибка а предупреждение

авторconnection.command.execute

Currentproject.connection ?

или

dim cnn as new adodb.connection
cnn.open Currentproject.connection.connectionstring
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / SQL, ADO и сообщения об ошибках
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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