powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Границы транзакции в форме при ADP проекте
13 сообщений из 13, страница 1 из 1
Границы транзакции в форме при ADP проекте
    #32779456
yuniki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. мне непонятно Если есть,скажем, тривиальная форма для редактирования данных на одну таблицу , построенная мастером, то когда начинается и когда заканчивается транзакция при работе пользователя с ней?

И то же самое интересно,конечно, и для сложных форм, т.е. когда источник записей - запрос из нескольких таблиц, и кроме того, из самой формы при редактировании какого-то поля пользователь вызывает другую форму(например, для дополнения справочника из которого ему нужно заполнять это поле)
и т.д.
Т.е. нужно ли специально давать при открытии форм команды SQL SERVER'у BEGIN TRAN , при окончании редактировании ROLLBACK или COMMIT ?
...
Рейтинг: 0 / 0
Границы транзакции в форме при ADP проекте
    #32779506
Фотография Shurgenz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по-моему акес берет транзакцию в свои лапы.... и... если переходишь с записи на запись, транзакция для старой кончается, для новой начинается.

Если, находясь на како-либо записи ты жамкаешь ескейп, происходит rollback.
(Ежели ты там что-то наменял в полях, все откатывается взад)
...
Рейтинг: 0 / 0
Границы транзакции в форме при ADP проекте
    #32779654
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если речь про ADP
то там транзакции в стандартном механизме форм не используются
долгосрочная блокировка записей - вещь крайне опасная


при необходимости обновить данные серверу посылается запрос типа
обновить поле1=1 где код =кодзаписи поле1 = староезначение поле2=староезначение итд по всем полям запроса используемого в форме

если возвращается rowcount = 1 то все хорошо а иначе - месагу что запись обновлена другим пользователем

если в таблице есть таймштамп то немного по другому, но принцип тот же,
без транзакций
...
Рейтинг: 0 / 0
Границы транзакции в форме при ADP проекте
    #32779751
Фотография Shurgenz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Круто :) но всегда есть место подвигу :) можно, к примеру, самому транзакцию забодяжить :)
...
Рейтинг: 0 / 0
Границы транзакции в форме при ADP проекте
    #32779813
yuniki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 АлексейК >
Ну ,скажем так , БЕЗ транзакций не бывает в природе.
Просто, видимо, если я правильно Вас понял, транзакция ограничена одним SQL оператором обновления. Т.е. форма сама не выдает Begin Tran/Commit/Rollaback.

Но , видно можно , и самому устанавливать границы транзакций , например при открытии формы.
Shurgenz вроде это и пишет, но его смайлы не понятны!
...
Рейтинг: 0 / 0
Границы транзакции в форме при ADP проекте
    #32779942
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 yuniki

ни форма ни ADO явной транзакции не начинает

Что касается теории то без транзакций действительно не бывает в природе
но в данном случае по отношению клиента к серверу явного объявления транзакции не происходит. Неявная транзакция естественно случается при выполнении update во глубине серверных процессов, но я думаю это уже никому не интересно.

кому интересно запускаем MSSQL профайлер и внимательно смотрим как форма сохраняет записи ...
...
Рейтинг: 0 / 0
Границы транзакции в форме при ADP проекте
    #32779945
Фотография Shurgenz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не уверен, что границы транзакции для формы можно как-то поменять. Я писал про собственноручно написанный батч, а потом его экзекют. Никак не привязываясь к собственно форме.

А смайлился я потому, что, как мне вначале показалось, узнал нечто новое для себя.... а потом подумал....

А как Акес откатывается назад при нажатии ескейпа? Если это не rollback, то что же? Возможно, он пытается переписать то, что там (в текущей записи было до этого). Однако, на деле происходит не это. Происходит именно rollback, как мне все же кажется.... Если я пытаюсь отменить изменения, а данные были в это время изменены кем-то другим, мне об этом сообщат. То есть, роллбэк выдаст ту запись, измененную этим кем-то. Этому то Акес и удивится и сообщит об ошибке.

Хотя... может, все и не так.
...
Рейтинг: 0 / 0
Границы транзакции в форме при ADP проекте
    #32779960
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
при нажатии эскепа происходит что то типа:

me.control.value = me.control.oldvalue

никаких роллбаков и транзакций
...
Рейтинг: 0 / 0
Границы транзакции в форме при ADP проекте
    #32779980
Фотография Shurgenz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда мне совсем непонятна модель его поведения...

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

авторme.control.value = me.control.oldvalue

Не проще ли ему просто обновить эту, измененную кем-то запись?
...
Рейтинг: 0 / 0
Границы транзакции в форме при ADP проекте
    #32779993
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все. утомлен. тяпница на дворе...
...
Рейтинг: 0 / 0
Границы транзакции в форме при ADP проекте
    #32780113
ShurgenzТогда мне совсем непонятна модель его поведения...

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

авторme.control.value = me.control.oldvalue

Не проще ли ему просто обновить эту, измененную кем-то запись?

ну елыжпалыж
и Валью и старую Валю знает форма аксеса и лазать по сеткам ей лома. У нее стандартное поведение на ескейп - 1 раз - откат на олдвалю текущего контрола; 2-й раз - откат всех олдвалюёв и сброс .dirty. И ни за какими данными вона при сем не лазаит (все ж пад руками, да?). А вот при попытке чиста канкретна наобновнуть данные в записи, аксес, напоровшись на то, что даные то уже "поменяты, да тропинки затоптаты" возвращает пользователю отказ от горшка. (ну или требование подвердить текущую нужду).
...
Рейтинг: 0 / 0
Границы транзакции в форме при ADP проекте
    #32780131
Фотография Shurgenz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так вот про "отказ от горшка и речь"... про это я писал.... ведь стандартный rollback отработает таким макаром, что если транзакция свершается уже после смены данных другим пользователем, то после роллбэка я увижу данные, что были сменены, а не те, что были до.
...
Рейтинг: 0 / 0
Границы транзакции в форме при ADP проекте
    #32780194
"отказ от горшка" - это кады пришел отлуп на попытку реально вставить запись? И что тут не устраиваит? (Я не помню поведение формы, че, она самоходом не рефрешит запись? А только откатывает олдвелью? Так отрефрешь ее силком.) Ты ж уже получил сообщение об изменении записи.

А как "идеологически верно" отменить работу пользователя в этом случае - это ж бабушка даже не надвое сказала. То ли юзер хочет всегда расставаться со старыми значениями без сожаления, то ли хочет иметь их для просмотра перед рефрешем, то ли еще чего.


И еще раз - отказ формы от изменений - это не роллбек. Роллбек - это отказ сервера от изменений, который он совершает при отсутствии подверждения от формы. Форма же только откатывает свои велью. Почему сразу не рефрешит - см. выше. А сервер, вероятно, даже не шлет "новые данные" записи форме - ведь запроса на рефреш от формы не было.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Границы транзакции в форме при ADP проекте
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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