Форум: "Базы";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];
ВнизADO Events Найти похожие ветки
← →
Vir © (2006-07-28 13:43) [0]Есть ли в механизм мониринга изменений в базе при работе через ADO?
Т.е. хотелось бы после добавления данных внешнем пользователем производить некоторые операции над базой.
← →
stone © (2006-07-28 13:46) [1]
> Т.е. хотелось бы после добавления данных внешнем пользователем
> производить некоторые операции над базой.
Для начала неплохо расшифровать слово некоторые, а также разграничить серверные и клиентские операции.
← →
Ega23 © (2006-07-28 13:47) [2]Над базой, или над клиентом?
Если над базой, то выполняй добавление данных через SP, в ней же и организуй всю пост-добавленную логику.
А вот обновлять данные на клиенте без ведома опреатора, это, ИМХО, нехорошо.
← →
Sergey13 © (2006-07-28 13:49) [3]2 [1] stone © (28.07.06 13:46)
> Для начала неплохо расшифровать слово некоторые
А я бы начал с расшифровки слова "база". 8-)
← →
Vir © (2006-07-28 13:50) [4]Это нужно чтобы поповещать других клиентов.
Т.е. после того как одни клиент добавил запись - других нужно оповестить.
← →
Vir © (2006-07-28 13:52) [5]Проблема в том что движок базы неизвестен (он может меняться от версии к версии) но всегда будет работать через ADO.
← →
Sergey13 © (2006-07-28 13:55) [6]2 [4] Vir © (28.07.06 13:50)
> Т.е. после того как одни клиент добавил запись - других
> нужно оповестить.
Предалагаю оповещать флажками, как на флоте, с дублированием по громкой связи во время тумана. 8-)
← →
Megabyte © (2006-07-28 13:56) [7]
> Предалагаю оповещать флажками, как на флоте, с дублированием
> по громкой связи во время тумана. 8-)
%)))
← →
Vir © (2006-07-28 13:59) [8]Ага а записи вести не в базе а в бортовом журнале :)
← →
Sergey13 © (2006-07-28 14:11) [9]> [8] Vir © (28.07.06 13:59)
> Ага а записи вести не в базе а в бортовом журнале :)
Ну так правильно - бортовой журнал, в отличии от базы с неизвестным движком, это документ.
А если серьезно, то как же ты пишешь и не знаешь в какую БД? Чудеса.
И зачем оповещать других, если не секрет?
← →
Stanislav © (2006-07-28 14:17) [10]В AdoQuery.AfterPost ?
← →
Vir © (2006-07-28 14:19) [11]
> А если серьезно, то как же ты пишешь и не знаешь в какую
> БД? Чудеса.
Нет не чудеса - просто сейчас это Jet (Access). А когда она выростит это будет MSSQL или MySQL. При этом програмная часть преписываться не должна достаточно изменить строку подключения в файле настройки (чем кстати меня очень радует работа через ADO).
А повещать зачем: есть драйвер устройства который его мониторит, и считывает данные когда они там появляються складывая их в базу.
И есть n клиентских рабочих мест. У которых будет доступ к этой базе им нужно знать, что появились новые данные и их можно "посмотреть".
← →
Ega23 © (2006-07-28 14:20) [12]Оповещение:
при изменении данных (добавлении, удалении) пишется запись в табличку, мол данные обновились. Причём - сколько клиентов, столько и записей.
Каждый клиент имеет поток, который пингует эту табличку. Если нашёл что-то для себя - обновил свой набор данных и вытер эту запись.
З.Ы. Это изврат. точнее, не изврат, а реально действующая система. Но система весьма специфична.
А в большинстве случаев - это изврат.
← →
Vir © (2006-07-28 14:27) [13]
> А в большинстве случаев - это изврат.
Именно - изврат и загруз самой базы на постоянной цикличное выполнение SQL запросов для отслеживания изменений. Сделать не сложно и таким образом, но это неприятное решение. Просто я надаялся что попбный межанизм реализован в драйверах. Есть же такое в InterBase.
Если уж про пингующий поток то можно немного щадяще сделать - в ADO есть механизм получения метаданных о базе - в часности времени последненего изменения таблиц. Через него можно понять что туда что-то записалось.
← →
Sergey13 © (2006-07-28 14:33) [14]> [13] Vir © (28.07.06 14:27)
> Просто я надаялся что попбный межанизм реализован в драйверах.
> Есть же такое в InterBase.
По твоему InterBase это драйвер? Ты заблуждаешься.
← →
Vir © (2006-07-28 14:36) [15]InterBase конечно это сервер.
Но речь идет о драйвере через который подключаеться Delphi.
← →
sniknik © (2006-07-28 14:39) [16]> При этом програмная часть преписываться не должна достаточно изменить
> строку подключения в файле настройки (чем кстати меня очень радует работа через ADO).
мечтатель... ;о))
в MSSQL есть сервер оповещений, правда он отдельный, доставляется к MSSQL серверу (на мелкософте можно скачать). подробнее не скажу, все что когдато читал, смотрел не сохранил за ненадобностью (не используем). а искать... сам с тем же успехом сможеш.
← →
Sergey13 © (2006-07-28 14:40) [17]> [15] Vir © (28.07.06 14:36)
Так именно сервер этим и может заниматься, а драйвер это просто учитывает.
← →
Ega23 © (2006-07-28 14:42) [18]вот представь: ты сидишь за клиентом, у тебя грид с набором данных. Данных - 2000 записей. Ты начинаешь его просматривать (просто просматривать!). И тут, вдруг, начинается обновление.
Я бы за такое убил. И не важно, как оно реализовано: через event"ы с сервера или через пинг обновлений.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.017 c