MAVLOGOUT

Обсуждение MAV Direct ODBC

Модератор: Andrew™

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion и MAV который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
Admin
Администратор
Сообщения: 3961
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

MAVLOGOUT

Сообщение 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 выполнился?
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Re: MAVLOGOUT

Сообщение 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исшная, а не "ручная"

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

Файл уже открыт
Транзакция уже открыта и т д
Аватара пользователя
StillZero
Ветеран
Сообщения: 454
Зарегистрирован: 06 Июль 2005, 2:17
Откуда: Хабаровск
Контактная информация:

Сообщение StillZero »

или хотите вернуться к драйверным маразмам
тут такое дело...
в форме на Save.Completed начинается LOGOUT, идут всякого рода проверки, вызывается процедура, потом опять проверки и COMMIT

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

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

базара без, если идеологию надо менять, не вопрос, поменяем
объясни как и почему?
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Сообщение Andrew™ »

StillZero писал(а):
или хотите вернуться к драйверным маразмам
тут такое дело...
в форме на Save.Completed начинается LOGOUT, идут всякого рода проверки, вызывается процедура, потом опять проверки и COMMIT

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

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

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

какую идеологию менять? не понял
Аватара пользователя
StillZero
Ветеран
Сообщения: 454
Зарегистрирован: 06 Июль 2005, 2:17
Откуда: Хабаровск
Контактная информация:

Сообщение StillZero »

какую идеологию менять? не понял
уже поменяли :)
Ответить