Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.16;
Скачать: CL | DM;

Вниз

Сохранение БД   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.012 c
3-1193224575
Int23
2007-10-24 15:16
2008.03.16
Обработка ошибки в TADOCommand


2-1203317888
ryden
2008-02-18 09:58
2008.03.16
Как поместь форму в dll


2-1203493310
Dasting
2008-02-20 10:41
2008.03.16
Директива out


15-1202171549
oldman
2008-02-05 03:32
2008.03.16
Что за защита такая?


3-1193302850
Fiend
2007-10-25 13:00
2008.03.16
отключить триггер не являясь SYSDBA