Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как в ADO отследить изменение данных в БД? / 13 сообщений из 13, страница 1 из 1
13.10.2004, 06:49
    #32735239
Alex_VC
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в ADO отследить изменение данных в БД?
Проблема в следующем: имеется БД (скажем на SQL 2000), имеется приложение, в котором работает куча юзеров. Используется адошный рекордсет. В рекордсет запихиваются данные из нескольких таблиц SQL- запросом (f.e.: "select a.field1,b.field1,c.field2
from table1 a left outer join table2 b on a.id=b.id
,table3 c
where c.id=a.id")
Пользователи вносят изменения в данные этих таблиц (изменения через хранимые процедуры).
Вопрос: можно ли сделать так, чтобы при изменении данных в таблицах БД, эти данные обновлялись бы и у пользователя, у которого открыт рекордсет, в котором имеются данные из измененных таблиц.
(использование метода Requery() , например, по таймеру не очень красиво: при достаточно больших объемах данных это сильно тормозит).
Благодарю за внимание.
...
Рейтинг: 0 / 0
13.10.2004, 07:06
    #32735247
Philin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в ADO отследить изменение данных в БД?
Насколько я понимаю технологию клиент-сервер, без Requery() тут не обойтись...
Чтобы исключить частое обращение к нужной таблице по таймеру, можно сделать следующее:
1)завести таблицу, в которой будет информация об изменении
2)по таймеру обращаться к ней, если данные изменились - Requery() к основной таблице
3)именяете данные в основной таблице - автоматически меняется таблица с информацией об изменениях (можно триггером)
...
Рейтинг: 0 / 0
13.10.2004, 08:01
    #32735283
Alex_VC
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в ADO отследить изменение данных в БД?
Была у меня такая идея, но я надеялся и верил, что может быть есть "штатный" инструмент для этого (может есть какие-нибудь функции API для работы с SQL-сервером, которые могут производить уведомление об изменении данных)...
...
Рейтинг: 0 / 0
13.10.2004, 08:22
    #32735303
Philin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в ADO отследить изменение данных в БД?
Есть еще в ADODataSet свойство CursorType, в хелпе про его значение ctDynamic очень интересно написано...,
но я этим не пользовался, и, если честно, пользоваться боюсь...
...
Рейтинг: 0 / 0
13.10.2004, 10:39
    #32735546
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в ADO отследить изменение данных в БД?
А я решил эту проблему DCOM сервером
...
Рейтинг: 0 / 0
13.10.2004, 11:39
    #32735745
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в ADO отследить изменение данных в БД?
Alex_VCВопрос: можно ли сделать так, чтобы при изменении данных в таблицах БД, эти данные обновлялись бы и у пользователя, у которого открыт рекордсет, в котором имеются данные из измененных таблиц.


Нет, нельзя.
...
Рейтинг: 0 / 0
13.10.2004, 11:39
    #32735747
Tracer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в ADO отследить изменение данных в БД?
автор(может есть какие-нибудь функции API для работы с SQL-сервером, которые могут производить уведомление об изменении данных)...
Есть такие функции, см.
sp_trace_create
sp_trace_setevent
sp_trace_setstatus
sp_trace_generateevent
...
Рейтинг: 0 / 0
13.10.2004, 12:29
    #32735954
Alex_VC
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в ADO отследить изменение данных в БД?
JibSkeartА я решил эту проблему DCOM сервером
А DCOM сервер на машину где SQL Server надо ставить?
...
Рейтинг: 0 / 0
13.10.2004, 12:50
    #32736022
Alex_VC
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в ADO отследить изменение данных в БД?
Tracer Есть такие функции, см.
sp_trace_create
sp_trace_setevent
sp_trace_setstatus
sp_trace_generateevent

Transact Sql Help: "... Only members of the sysadmin role can execute sp_trace)create..."
Увы, таких правов прикладухе вряд ли дадут :(( ...
...
Рейтинг: 0 / 0
13.10.2004, 12:55
    #32736039
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в ADO отследить изменение данных в БД?
Alex_VC JibSkeartА я решил эту проблему DCOM сервером
А DCOM сервер на машину где SQL Server надо ставить?

Где угодно :)
...
Рейтинг: 0 / 0
13.10.2004, 12:55
    #32736047
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в ADO отследить изменение данных в БД?
Кстати вы клиента на чем пишите ?!

 ш
(';')
(V),(V),,
Код: plaintext
 JS 
...
Рейтинг: 0 / 0
13.10.2004, 13:58
    #32736268
Alex_VC
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в ADO отследить изменение данных в БД?
JibSkeartКстати вы клиента на чем пишите ?!

Microsoft Visual C++ v 6.00 (service pack 5)
...
Рейтинг: 0 / 0
13.10.2004, 14:08
    #32736293
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в ADO отследить изменение данных в БД?
понятно.
Я думал на Buildere C++


 ш
(';')
(V),(V),,
Код: plaintext
 JS 
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как в ADO отследить изменение данных в БД? / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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