Пишу многопользовательское приложение с использованием Firebird v2.0.1.12855 и Delphi 7.
Соответственно столкнулся с вопросом правильной организации использования транзакций.
Для доступа к базе данных и к данным использую встроенные в Delphi компоненты IBX.
На основной форме есть Grid, привязанный к DataSet, к которому привязана "читающая" транзакция ibReadTransaction с параметрами
Код: Выделить всё
read_committed
rec_version
nowait.
Для редактирования данных использую IBSQL, с которым ассоциирую "пишущую" транзакцию ibWriteTransaction с такими же параметрами.
По ibWriteTransaction.Commit делаю
Код: Выделить всё
DataSet.Close;
DataSet.Open;
У других пользователей данные меняются только тогда, если в код добавляю
Код: Выделить всё
DataSet.Open;
ibReadTransaction.Commit;
DataSet.Close;
Мой вопрос:
логично ли так поступать, есть ли какие-нибудь альтернативы, сильно ли нагружается сервер?