powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как узнать об изменении таблицы БД
11 сообщений из 11, страница 1 из 1
Как узнать об изменении таблицы БД
    #38172656
TwoRS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте. Я выполняю запрос к базе данных (MSSQL/ACCESS), получаю таблицу.
Если кто-то изменил эти данные после моего запроса, я об этом не узнаю.
Как приложение может об этом сразу же узнать?
Вариант: каждые х-секунд обновлять запрос - как-то не очень хороший.
Может есть другие способы?
Например, "вконтакте" новости и остальное подгружает в реальном времени- он делает запросы каждые несколько секунд или есть другой механизм? (моя программа не веб - C# WPF)
Заранее спасибо.
...
Рейтинг: 0 / 0
Как узнать об изменении таблицы БД
    #38172748
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TwoRS, для MS SQL есть механизм уведомлений - см. класс SqlDependency. Не знаю есть ли что-то аналогичное для Access.
...
Рейтинг: 0 / 0
Как узнать об изменении таблицы БД
    #38172757
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TwoRSВариант: каждые х-секунд обновлять запрос - как-то не очень хороший.
Зато просто и работает в любой СУБД.
...
Рейтинг: 0 / 0
Как узнать об изменении таблицы БД
    #38172860
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TwoRS !
А интересно, у тебя весь мир видит твой сервер, твои таблицы? И кому не лень в них записи кидает?
...
Рейтинг: 0 / 0
Как узнать об изменении таблицы БД
    #38172863
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно конечно через триггеры вести журнал логов заполнения таблиц...
...
Рейтинг: 0 / 0
Как узнать об изменении таблицы БД
    #38172998
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУTwoRSВариант: каждые х-секунд обновлять запрос - как-то не очень хороший.
Зато просто и работает в любой СУБД.
+1.
Как вариант мультикаст-юдипишку (multicast UDP не путать с просто UDP) из триггера в БД кидать, и постоянно, в отдельном тхреаде, читать данные с какого-то опреднлённого виртуального IP-адреса. Если чего-то пришло - обновлять данные. Но это не ко всем БД подходит, а только к тем, где можно использовать расширенные х-ые процелуры, или CLR.

Но гораздо проще сделать, как сказано выше.
...
Рейтинг: 0 / 0
Как узнать об изменении таблицы БД
    #38173018
TwoRS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир САTwoRS !
А интересно, у тебя весь мир видит твой сервер, твои таблицы? И кому не лень в них записи кидает?

Естественно там пароль будет
...
Рейтинг: 0 / 0
Как узнать об изменении таблицы БД
    #38173063
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TwoRSВладимир САTwoRS !
А интересно, у тебя весь мир видит твой сервер, твои таблицы? И кому не лень в них записи кидает?
Естественно там пароль будетТопик ближе к форуму "Microsoft SQL Server"...
Ну ты сам наверное представляешь, что тебе конкретно нужно?
Завести пользователей (пароли к ним), которые могли работать именно с твоей БД...
Создать таблицу логирования...
Ну и потом в триггерах на INSERT таблиц создавать запись в таблицу логирования с именем пользователя, который делает запись...
Все вроде просто...
Но потом может выяснится, что это и нахр..н никому не нужно...
Да и записей может быть очень много в разные таблицы... соответсвенно в таблице лигирования появятся море записей...
Ну и теперь вопрос: А оно надо?
Может проблему решать по другому?
...
Рейтинг: 0 / 0
Как узнать об изменении таблицы БД
    #38191124
Фотография defragmentator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то и одной записи достаточно, датой-временем последнего изменения
...
Рейтинг: 0 / 0
Как узнать об изменении таблицы БД
    #38191152
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TwoRSЕсли кто-то изменил эти данные после моего запроса, я об этом не узнаю.Еще как узнаешь. По крайней мере через ADODB. При обновлении данных в этой ситуации ADODB выдает соответствующую ошибку, которую можно обработать и принять решение: 1) отказаться от сохранения и ничего не делать, 2) перезаписать своими данными, 3) восстановить те данные, которые были изначально.
...
Рейтинг: 0 / 0
Как узнать об изменении таблицы БД
    #38191841
Azomorph
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как варик, если приложение работает через хранимки, можно в хранмике сделать возвращаемый параметр в виде битового значения, которое выставляется по условию успешности отработки запроса, к примеру если после запроса @@ROWCOUNT не равен 0, то 1, и там уже в коде обрабатывать это значение :)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как узнать об изменении таблицы БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]