none
Событие при добавлении новой записи в БД RRS feed

  • Общие обсуждения

  • Нужно постоянно мониторить sdf-файл и при появлении в нем новых записей извлекать их оттуда.. как проще всего это реализовать?
    • Перемещено SachinW 1 октября 2010 г. 20:54 MSDN Forums Consolidation (От:Начинающие разработчики)
    • Изменен тип Abolmasov Dmitry 15 ноября 2010 г. 8:21
    30 сентября 2010 г. 18:33

Все ответы

  • Можно добавить в таблицу поле с временем создания записи, а в программе по таймеру выбирать записи с момента прошлого выбора. Таким образом вы будите получать новые записи за какой-то период времени.
    29 октября 2010 г. 6:50
  • Возможно можно как-то обыграть эту ситуацию с помощью триггеров.
    E-mail: Svatoslav.Pankratov@gmail.com
    2 ноября 2010 г. 13:18
  • Нужно объединить предыдущие два ответа и сделать примерно следующее:

    1) Создать в базе данных таблицу истории, в которой будут поля "Дата и Время изменения", "имя таблицы, с изменившимися данными", "ключ, определяющий запись в таблице" и можно дополнительно, если например есть необходимость хранения истории не только по создаваемым записям, но и по изменённым, добавить поля для определения, что именно было в записи изменено.

    2) На таблицы, для которых вам нужно осуществлять мониторинг, повесить триггер создания записи (если нужно мониторить изменение/удаление записей, то и для них соответствующие триггеры), который будет заполнять таблицу истории.

    3) В вашей программе следить за появлением новых записей в таблице истории.

    ЗЫ: у нас так работает на промышленной БД в организации

    2 ноября 2010 г. 17:36
  • Немного омрачает ситуацию отсутствие поддержки триггеров в SQL Server Compact.
    2 ноября 2010 г. 18:47
  • Вместо триггеров (если есть такая возможность) можно использовать (создать) посредника между программой работающей с БД и непосредственно БД, например в виде класса.
    2 ноября 2010 г. 19:20
  • Тогда и заморачиваться с дополнительными таблицами не стоит. Этот посредник вполне может сразу отправлять нотификации.

    Но оригинальный вопрос - как получить уведомление, если доступен только sdf-файл, в который кто-то извне пишет данные. IMHO, нет вариантов, кроме прямого опроса таблицы по таймеру, предложенного Abolmasov Dmitry.

    Ждем топикастера :(

    2 ноября 2010 г. 19:25