Форум: "Начинающим";
Текущий архив: 2008.03.16;
Скачать: [xml.tar.bz2];
ВнизСохранение БД Найти похожие ветки
← →
FIL-23 (2008-02-15 06:10) [0]Такая значит проблема: имеестя база (*.GDB) на сервере, и естественно клиентская программа у пользователя на компьютере. так вот когда он заносит данные в таблицу они сохраняются только там до того времени пока он не выключит программу, после выключения программы все изменения переносятся в сетевую бд. Как сделать так что бы изменения в сетевой БД происходили сразуже когда их вносят на локальнойй?... или может кто волшебную команду знает чтобы транзакция сразуже проходила)? Работаю с компанентами IBDatabase1, IBTransaction1, IBTable1
← →
Loginov Dmitry © (2008-02-15 07:48) [1]Такая "волшебная" команда реализована только в FIBPlus. В стандартном наборе ее нет.
На самом деле изменения в базе сохраняются, а при закрытии / снятии проги "проводится" транзакция, после чего изменения будут видны другим клиентам (это при TIBTransaction.DefaultAction = TACommit). Для того, чтобы изменения были видны сразу, необходимо после каждого изменения делать TIBTransaction.Commit. Для этого рекомендуется использовать 2 компонента TIBTransaction. Один - только для чтения (Commit ему никогда не нужно делать), а другой - для чтения и записи. Все изменения нужно делать под управлением второй транзакции, а для того, чтобы и первая транзакция эти изменения увидела, нужно просто переоткрыть соответствующие ReadOnly - наборы данных. Можно обойтись и одной транзакцией, но при большом количестве наборов данных придется после каждого изменения открывать большинство из них, а это приведет к бесполезной нагрузке на сервер и к увеличению сетевого траффика.
← →
Sergey13 © (2008-02-15 09:11) [2]> [1] Loginov Dmitry © (15.02.08 07:48)
А использование двух транзакций, т.е. "нужно просто переоткрыть соответствующие ReadOnly - наборы данных" - это полезная нагрузка на сервер?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.03.16;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c