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

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

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


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