![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
динамическая база [D6, IB6.x]
:: Hamster :: © (2002-08-30 08:16:00)Значит вопрос такой:
Три машины - Склад, Касса, Сервер
база лежит на сервере.
При списании с "Кассы" в базе делаются изменения.
Как сделать сделать update на складе.
Т.е Автообновление..
На кассе в конец процедуры списания можно просто дописать
ibdatabase.applyupdates;
Но как получить энти изменения на складе ?!
Создать таймер и каждые 5 минут делать ibdatabase.close; ibdatabase.open;..пока нечего умнее я не нашёл..
int64 (2002-08-30 11:26:00) [1]Я сделал обновление локальных данных по реакции на post_event. Также внял чужому совету и перестраховался таймером на клиенте, который раз в 10 сек. считывает флаги с сервера.
Так вот, за пол года эксплуатации БД, таймер ни разу не инициировал обновлений. :)
Alexandr (2002-08-30 09:52:00) [2]а какие могут быть действия? только переоткрыть таблицу...
-=Sergeante=- (2002-08-30 09:38:00) [3]Делается это с помощью сообщений. Н-р:
CREATE TRIGGER AU_SKLAD FOR SKLAD
ACTIVE AFTER UPDATE POSITION 0
as
begin
post_event "SKLAD_update";
end
Клиентское приложение принимает сообщение от сервери IB (компонент IBAlert кажется) и делает нужные действия.
Alexandr (2002-08-30 08:39:00) [4]примерно так и надо делать.
А вообще, надо на складе кнопку сделать "обновить позицию в справочнике".
Да еще и обновлять позицию каждый раз когда начинает работать с этой позицией.
Заметь, одну позицию, а не весь набор данных, поэтому это очень быстро будет.
Это refresh для IBX(с закладки Interbase)