![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
свойства tIbTransaction [D7, fb2]
Евгений Р. © (2008-08-21 15:09:00)Можно ли по активной транзакции определить, используется ли она только для чтения или ею внесены изменения в БД (требуется commit)?
Виталий Панасенко(дом) (2008-08-21 22:39:00) [21]> Евгений Р. (21.08.08 21:26) [11]
>
>
Не надо делать commit после вставки каждой записи, если вы их вставляете больше 10 за один раз
Interbase плохо работает в этом режиме, т.е. вставка будет медленной. Лучше оформить вставки "в пакет" и обрамить их StartTransaction/Commit.
//////
это с твое ссылки...
http://www.cyberguru.ru/database/interbase/interbase-hints.html
Евгений Р. (2008-08-21 21:26:00) [22]
> MsGuns © (21.08.08 20:31) [10]
>
>
> "Коммитить" надо любой пост, что автоматически и делается
а.У tIbDataSet такое не делается, через запрос тоже.
б. "Не надо делать коммит после каждой записи, если это не требуется по смыслу
Это излишне нагружает сервер." п.7 http://www.cyberguru.ru/database/interbase/interbase-hints.html
уж не знаю кому верить.
> А до того остатки по карточкам не менять.
>
А если операторов много, а товара мало?
MsGuns (2008-08-21 20:31:00) [23]"Коммитить" надо любой пост, что автоматически и делается, если асякой фигни не панавыставлять ручками шаловливыми. А вот сам документ должен иметь статус "проведено", который выставлять по команде пользователя когда он введет весь документ. А до того остатки по карточкам не менять.
Сергей М. (2008-08-21 17:42:00) [24]Удалено модератором
Евгений Р. (2008-08-21 17:31:00) [25]
> MsGuns © (21.08.08 17:02) [6]
да, если без сеточных редактирований, было бы проще. Но до этого было так на парадоксе. Поэтому пока должно быть так. Ну а при "незатруднении пониманием" не возникает вопросов.
Евгений Р. (2008-08-21 17:25:00) [26]
> [3]
под страничкой я подразумеваю дбГрид с датаСетом
данные в грид можно вводить только после ввода заголовка (после post)
после ввода каждой строки в гриде - пост
по окончании вода документа - commit
необходимо делать commit и по ходу ввода (чтобы забронировать товар), если оператор заснул на половине заказа. Но после commit нужно переоткрыть датасэты.
т.е. если ничего не ввел - комитить не надо. если введены строки - комитить надо по таймеру и при закрытии документа.
MsGuns (2008-08-21 17:02:00) [27]Дело в том, что некоторые товарисчи никак не могут отказаться от сеточных редактирований, при этом не затрудняя себя пониманием того, "как это все работает". Отсюда и недоумения
Sergey13 (2008-08-21 16:58:00) [28]> [4] Сергей М. © (21.08.08 16:55)
Я конечно ни разу не реальный пацан и всю жизнь пользуюсь одной (за редким исключением) транзакцией, но таких проблем у меня не встречалось. Вывод - не в количестве дело.
Сергей М. (2008-08-21 16:55:00) [29]
> Евгений Р. (21.08.08 16:41) [2]
Видите ли, сэр, все реальные пацаны в своих реальнопацанскихпрогах, как правило, используют минимум ДВЕ транзакции - одну для чтения, другую для модификации. И потому у реальных пацанов такие дурацкие по сути проблемы не возникают ..
Sergey13 (2008-08-21 16:51:00) [30]> [2] Евгений Р. (21.08.08 16:41)
> но логичней было бы смотреть за транзакцией.
ИМХО, странная у тебя логика.
> на одной транзакции несколько датасетов(заголовок накладной
> и несколько страничек).
Ну представь, что узер ввел заголовок и ЧАСТЬ "страничек" (или вообще их не вводил). Ты посмотрел - есть незакомиченные данные и закомитил. И что в итоге?
Евгений Р. (2008-08-21 16:41:00) [31]делает пользователь.я могу только следить. на одной транзакции несколько датасетов(заголовок накладной и несколько страничек). Могу отслеживать BeforePost для каждого ДатаСета, но логичней было бы смотреть за транзакцией.
DrPass (2008-08-21 16:15:00) [32]Нет. А смысл? Разве ты сам не знаешь, чего в своей транзакции делаешь?