|
Событие базы -для всех пользователей пользователей у кого эта база открыта
|
|||
---|---|---|---|
#18+
Доброго времени суток Может кто подскажет:совершается определенное действие с базой - все юзверы базы должны он нем "сразу узнать" Таймер- не подходит- гонять постоянно какой-то код на проверку ситуации которая раз в год бывает!?А реакция должна быть "относительно мгновенной". У лисы, в примерах от мелкомягких описана "ловля" виндовссобытий себе в среду(вот пока к нему склоняюсь), но как-то тоже не так: создать сгенерировать внешнее событие с тем чтобы затянуть обратно к себе? Есть кокой-нибудь более рациональный способ? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 14:18 |
|
Событие базы -для всех пользователей пользователей у кого эта база открыта
|
|||
---|---|---|---|
#18+
Можешь через mailslot оповещать, тут обертку с примером давал. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 14:26 |
|
Событие базы -для всех пользователей пользователей у кого эта база открыта
|
|||
---|---|---|---|
#18+
Спасибо, интересно .... по изучаю обязательно... очень может пригодиться для чего-нибудь другого а для моей тривиальной задачи "Ловить" виндовс событие ну и скажем менять что либо во вспомогательном текстовике -пожалуй попроще будет(ну если еще кто что не предложит) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 14:52 |
|
Событие базы -для всех пользователей пользователей у кого эта база открыта
|
|||
---|---|---|---|
#18+
rock-n-rollвиндовс событие Что конкретно под этим подразумевается? В виндовсе много всяких "событий". ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 15:09 |
|
Событие базы -для всех пользователей пользователей у кого эта база открыта
|
|||
---|---|---|---|
#18+
Покажи код этого "Ловить" из примеров. Какие функции WinAPI используются. Просто интересно: либо я чего-то не знаю про виндовс, либо ты неправильно понял о чем там речь. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 15:17 |
|
Событие базы -для всех пользователей пользователей у кого эта база открыта
|
|||
---|---|---|---|
#18+
Dima T, там, я посмотрел, даже пример "создание изменение в файле какого-нибудь каталога", ну вот и я буду что-либо менять в темр файле у мня все узверы под терминалкой, файлсервер, чтож у лисы ничего своего на эту тему нет ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 15:21 |
|
Событие базы -для всех пользователей пользователей у кого эта база открыта
|
|||
---|---|---|---|
#18+
Dima T, оригинал найти не могу но там примерно так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 15:35 |
|
Событие базы -для всех пользователей пользователей у кого эта база открыта
|
|||
---|---|---|---|
#18+
rock-n-rollDima T, там, я посмотрел, даже пример "создание изменение в файле какого-нибудь каталога", ну вот и я буду что-либо менять в темр файле у мня все узверы под терминалкой, файлсервер, чтож у лисы ничего своего на эту тему нет Не нашел ничего похожего в примерах фоксовых. Где именно ты его нашел? Как он называется? Если правильно понимаю там используется FindFirstChangeNotification() для мониторинга изменений в заданной папке, но она не может известить фокс. Можешь просто ожидать создание файла, как появился - событие произошло. Тут надо или постоянно опрашивать по таймеру или вообще повиснуть в ожидании события, но чтобы повиснуть - надо отдельный поток, а фокс однопоточный. Оповещение фокса без таймеров может быть только одним способом: через очередь сообщений, с помощью BINDEVENT() вешаешь свой обработчик на конкретное сообщение, и как только оно придет - фокс запустит обработчик. Но чтобы оно пришло кто-то должен его послать, в моем примере это делает DLL. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 15:45 |
|
Событие базы -для всех пользователей пользователей у кого эта база открыта
|
|||
---|---|---|---|
#18+
rock-n-rollDima T, оригинал найти не могу но там примерно так Похоже в виндовс добавили надстройку над FindFirstChangeNotification(), которая дождется изменений в папке и окну фокса сообщение пошлет. Используй ее, она по сети тоже должна работать. В ней что смущает? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 16:07 |
|
Событие базы -для всех пользователей пользователей у кого эта база открыта
|
|||
---|---|---|---|
#18+
Dima T, в ней как раз таки ничего не смущает, и пока это оптимальный вариант из прозвучавших, смущает что в лисе нет/или я не знаю функционала на такую тривиальную задачу. Я думал может кто подскажет что. оригинал так и не нашел, но он был(и давно его видел)-вот переделка ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 16:21 |
|
Событие базы -для всех пользователей пользователей у кого эта база открыта
|
|||
---|---|---|---|
#18+
rock-n-rollсмущает что в лисе нет/или я не знаю функционала на такую тривиальную задачу. Задача вовсе не тривиальная. По сути здесь нужен обмен сообщениями, т.е. должен быть какой-то сервер (приложение), который оповестит всех заинтересованных о наступлении события. В твоем случае этим сервером работает файловая система (точнее та часть виндовса которая обслуживает ФС), т.к. у нее есть встроенный механизм оповещения об изменениях в заданной папке. Больше ничего похожего в виндовсе нет. Проблема именно в виндовсе, а не в фоксе. Всем кому надо - делают свой сервер и клиенты цепляются к нему (TCP или NamedPipe). Но этот вариант будет еще сложнее чем мой пример с mailslot. В случае с mailslot центрального сервера нет, т.к. там используется протокол UDP который позволяет слать широковещательные сообщения по сети, на них и построено. Тот пример с mailslot я выложил как раз потому что проблема есть, а простых решений нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2016, 16:44 |
|
|
start [/forum/topic.php?fid=41&fpage=16&tid=1582017]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 264ms |
total: | 380ms |
0 / 0 |