18.09.2002, 10:31 | #1 |
Участник
|
Глобальная транзакция
У пользователя есть форма с Grid-ом, в него он вводит некоторые записи.
Также есть кнопки «Сохранить и закрыть» и «Закрыть». Как сделать так чтоб по нажатию на кнопку «Сохранить и закрыть» все записи введённые пользователем сохранялись и форма закрывалась, а по нажатию «Закрыть» закрывалась бы форма и происходил бы откат всех записей введённых пользователем? Я конечно могу всё ручками сделать, но не работает ли ttsbegin, ttsabort и ttscommit более глобально, нежели только в рамках одной функции? |
|
18.09.2002, 11:02 | #2 |
NavAx
|
Как говорил мой начальник и учитель: "Read the fucking MANUAL!!!"
Во первых: «Сохранить и закрыть» = маленький крестик в правом верхнем углу формы «Закрыть» = кнопка Esc в левом верхнем углу клавиатуры Во вторых: "ttsbegin, ttsabort и ttscommit" относятся к базе, а в гриде у тебя коллекция объектов на локале. В третьих: в форме есть куча методов типа: closeOk, closeCancel. Их не нужно переопределять, их нужно вызвать из clicked() Вывод: я понимаю, тебе как настоящему программисту обидно, но это уже написано до тебя |
|
18.09.2002, 11:13 | #3 |
----------------
|
1. Сделать всю работу пользователя во временной таблице (или типа того). А по "Сохранить" сохранять всё по своим местам.
2. Работают и боллее глобально ttsbegin увеличивает уровень транзакции для всех последующих действий с БД. ttscommit закрывает ближайший ttsbegin. ttsabort срубает ВСЕ открытые транзакции. НО: - открыть форму внутри транзакции - это значит залочить все записи на неопределенный срок (что есть прохо) и Аксапта начинает ругаться на нарушение ttslevel-а. - велика вероятность не закрыть какую-дь транзакцию или закрыть лишнее. |
|
18.09.2002, 11:37 | #4 |
Участник
|
Да, "Read the fucking MANUAL!!!" супер
На форме Grid связанный с DataSource-ом Вставляю одну запись, вторую, третию ... Нажимаю Esc, смотрю БД все записи сохранились Нажимаю "маленький крестик в правом верхнем углу формы", смотрю БД все записи сохранились Вызываю closeOK, смотрю БД все записи сохранились Вызываю closeCancel, смотрю БД все записи сохранились "Read the fucking MANUAL!!!" //---------------------------------------------------------------- Как связать временную таблицу с Grid-ом? |
|
18.09.2002, 11:52 | #5 |
----------------
|
Оч. просто
Есть временная табл. tmpMyTable и есть форма с DS по этой табл
PHP код:
|
|
|
Похожие темы | ||||
Тема | Ответов | |||
Одна открытая транзакция - одна запись в журнале | 4 | |||
Почему-то вылетатет транзакция | 21 | |||
Глобальная компиляция | 1 | |||
Транзакция в modified | 1 | |||
Axapta. Третье пришествие. Что нас ожидает? | 34 |
|