Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / SQL, ADO и сообщения об ошибках / 4 сообщений из 4, страница 1 из 1
16.06.2004, 21:49:02
    #32564519
tesia2003
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL, ADO и сообщения об ошибках
Есть такой скрипт процедуры 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
17.06.2004, 09:10:03
    #32564697
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL, ADO и сообщения об ошибках
Однако, если та же процедура выполняется в другой транзакции - например, EXEC Proc1 из другой процедуры, то сообщение об ошибке не выводится в ADO

а часом On Error Resume Next выше нигде не стоит?
Иногда удобно отслеживать ошибку через OutPut параметры, не используя Raiserror.
...
Рейтинг: 0 / 0
17.06.2004, 16:37:24
    #32565780
tesia2003
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL, ADO и сообщения об ошибках
>>а часом 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
17.06.2004, 17:49:44
    #32565987
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL, ADO и сообщения об ошибках
возможны проблемные места:

автор
raiserror @errno @errmsg

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

авторconnection.command.execute

Currentproject.connection ?

или

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


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