VirusXP |
последовательность такая: 1. пишешь триггер на таблицу, который посылает сообщения приложениям-клиентам (не помню уж как называется процедура) 2. в Delphi вешаешь компонент EventAlerter (IBEventAlerter), прописываешь в нём обновление клиентского НД при изменении данных на сервере (посмотри его события) |
Events являются очень специфическим инструментом и использовать их где попало не разумно по многим причинам. И уж во всяком случае фраза
"Я хочу чтобы данные которые я вношу в таблицу автоматически были видны на приложении другого пользователя"
никак не тянет на основательную предпосылку.
VirusXP |
З.Ы. В MS SQL такую возможность я уж полгода спрашиваю - никто не знает(( |
Бедняги, вот не повезло-то им
To alisultanov: Почитайте про изолированность транзакций на www.ibase.ru, и про транзакции вообще
автор |
IBDataSet1.Open; IBDataSet1.Insert; IBDataBase1.Connected:=true; IBTransaction1.DefaultDatabase:=IBDataBase1; IBTransaction1.Active:=true; IBDataSet1.Database:=IBDataBase1; IBDataset1.Transaction:=IBTransaction1; IBDataSet1.Edit; |
Первые две строки смотряться очень не уместно в контексте нижестоящих.
Должно быть так:
Коннект
Старт транзакции
Открытие датасета
Перевод его в режим вставки
автор |
IBTransaction1.DefaultDatabase:=IBDataBase1; IBDataSet1.Database:=IBDataBase1; IBDataset1.Transaction:=IBTransaction1; |
Подобные вещи вообще настраиваются в инспекторе объектов Delphi
автор |
IBTransaction1.Commit; IBTable1.Post; IBTransaction1.CommitRetaining; |
Это вообще секс.
Замечу мимоходом: Вы в курсе, что в момент вызова Commit все открытые датасеты закрываются?
иногда конечно можно видеть конструкцию:
Post;
CommitRetaining;
...
Commit; |
Но сомневаюсь, что у Вас подобный случай.
Это по теме "кешированные обновления". Вы в курсе что это такое? Оно Вам точно надо?
Контрольный вопрос: Вы сами это делали или помог кто? Если сами, то Вы хоть раз в справку дельфы заглядывали? на примеры тамошние смотрели?