Страница 1 из 1

MAVLOGOUT

Добавлено: 30 Март 2007, 8:25
Admin
пишу такой код

Код: Выделить всё

IF MAVLOGOUT()
   MESSAGE('Ощибка вызова LOGOUT #1')
END

IF MAVLOGOUT()
   MESSAGE('Ощибка вызова LOGOUT #2')
END

IF MAVCOMMIT()
   MESSAGE('Ошибка MAVCOMMIT #1')
END

IF MAVCOMMIT()
   MESSAGE('Ошибка MAVCOMMIT #2')
END
ни одного MESSAGE не показывается

В лог пишется следующее:

Код: Выделить всё

Begin transaction  Return Code : 0
Transaction already opened
Commit transaction  Return Code : 0
1. почему так?
2. какой COMMIT выполнился?

Re: MAVLOGOUT

Добавлено: 30 Март 2007, 13:44
Andrew™
Admin писал(а):пишу такой код

Код: Выделить всё

IF MAVLOGOUT()
   MESSAGE('Ощибка вызова LOGOUT #1')
END

IF MAVLOGOUT()
   MESSAGE('Ощибка вызова LOGOUT #2')
END

IF MAVCOMMIT()
   MESSAGE('Ошибка MAVCOMMIT #1')
END

IF MAVCOMMIT()
   MESSAGE('Ошибка MAVCOMMIT #2')
END
ни одного MESSAGE не показывается

В лог пишется следующее:

Код: Выделить всё

Begin transaction  Return Code : 0
Transaction already opened
Commit transaction  Return Code : 0
1. почему так?
2. какой COMMIT выполнился?
в библиотеке есть симафоры, пофторные LOGOUIT'ы игнорируются библиотекой, выдавать ошибку не вижу смысла, то же касается и MAVCOMMIT и MAVROLLBACK, если транзакция не открывалась то и эти соответвующие операции будут игнорироваться библиотекой

короче - это определённого рода защита от шаловливых ручек

все эти три функции возвращают ошибку только в том случае если ошибка ODBCисшная, а не "ручная"

ЗЫ
или хотите вернуться к драйверным маразмам типа:

Файл уже открыт
Транзакция уже открыта и т д

Добавлено: 30 Март 2007, 15:05
StillZero
или хотите вернуться к драйверным маразмам
тут такое дело...
в форме на Save.Completed начинается LOGOUT, идут всякого рода проверки, вызывается процедура, потом опять проверки и COMMIT

код внутри процедуры также обернут в LOGOUT/COMMIT

а форму и процедуры писали разные люди

базара без, если идеологию надо менять, не вопрос, поменяем
объясни как и почему?

Добавлено: 05 Апрель 2007, 15:22
Andrew™
StillZero писал(а):
или хотите вернуться к драйверным маразмам
тут такое дело...
в форме на Save.Completed начинается LOGOUT, идут всякого рода проверки, вызывается процедура, потом опять проверки и COMMIT

код внутри процедуры также обернут в LOGOUT/COMMIT

а форму и процедуры писали разные люди

базара без, если идеологию надо менять, не вопрос, поменяем
объясни как и почему?
ну и славненько, кто первый открыл транзакцию тот и прав, и кто первый закрыл транзакцию - тоже тот и прав

какую идеологию менять? не понял

Добавлено: 05 Апрель 2007, 15:59
StillZero
какую идеологию менять? не понял
уже поменяли :)