|
|
|
Как в ADO отследить изменение данных в БД?
|
|||
|---|---|---|---|
|
#18+
Проблема в следующем: имеется БД (скажем на 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() , например, по таймеру не очень красиво: при достаточно больших объемах данных это сильно тормозит). Благодарю за внимание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2004, 06:49 |
|
||
|
Как в ADO отследить изменение данных в БД?
|
|||
|---|---|---|---|
|
#18+
Насколько я понимаю технологию клиент-сервер, без Requery() тут не обойтись... Чтобы исключить частое обращение к нужной таблице по таймеру, можно сделать следующее: 1)завести таблицу, в которой будет информация об изменении 2)по таймеру обращаться к ней, если данные изменились - Requery() к основной таблице 3)именяете данные в основной таблице - автоматически меняется таблица с информацией об изменениях (можно триггером) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2004, 07:06 |
|
||
|
Как в ADO отследить изменение данных в БД?
|
|||
|---|---|---|---|
|
#18+
Была у меня такая идея, но я надеялся и верил, что может быть есть "штатный" инструмент для этого (может есть какие-нибудь функции API для работы с SQL-сервером, которые могут производить уведомление об изменении данных)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2004, 08:01 |
|
||
|
Как в ADO отследить изменение данных в БД?
|
|||
|---|---|---|---|
|
#18+
Есть еще в ADODataSet свойство CursorType, в хелпе про его значение ctDynamic очень интересно написано..., но я этим не пользовался, и, если честно, пользоваться боюсь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2004, 08:22 |
|
||
|
Как в ADO отследить изменение данных в БД?
|
|||
|---|---|---|---|
|
#18+
А я решил эту проблему DCOM сервером ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2004, 10:39 |
|
||
|
Как в ADO отследить изменение данных в БД?
|
|||
|---|---|---|---|
|
#18+
Alex_VCВопрос: можно ли сделать так, чтобы при изменении данных в таблицах БД, эти данные обновлялись бы и у пользователя, у которого открыт рекордсет, в котором имеются данные из измененных таблиц. Нет, нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2004, 11:39 |
|
||
|
Как в ADO отследить изменение данных в БД?
|
|||
|---|---|---|---|
|
#18+
автор(может есть какие-нибудь функции API для работы с SQL-сервером, которые могут производить уведомление об изменении данных)... Есть такие функции, см. sp_trace_create sp_trace_setevent sp_trace_setstatus sp_trace_generateevent ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2004, 11:39 |
|
||
|
Как в ADO отследить изменение данных в БД?
|
|||
|---|---|---|---|
|
#18+
JibSkeartА я решил эту проблему DCOM сервером А DCOM сервер на машину где SQL Server надо ставить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2004, 12:29 |
|
||
|
Как в ADO отследить изменение данных в БД?
|
|||
|---|---|---|---|
|
#18+
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..." Увы, таких правов прикладухе вряд ли дадут :(( ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2004, 12:50 |
|
||
|
Как в ADO отследить изменение данных в БД?
|
|||
|---|---|---|---|
|
#18+
Alex_VC JibSkeartА я решил эту проблему DCOM сервером А DCOM сервер на машину где SQL Server надо ставить? Где угодно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2004, 12:55 |
|
||
|
Как в ADO отследить изменение данных в БД?
|
|||
|---|---|---|---|
|
#18+
Кстати вы клиента на чем пишите ?! ш (';') (V),(V),, Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2004, 12:55 |
|
||
|
Как в ADO отследить изменение данных в БД?
|
|||
|---|---|---|---|
|
#18+
JibSkeartКстати вы клиента на чем пишите ?! Microsoft Visual C++ v 6.00 (service pack 5) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2004, 13:58 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=32735303&tid=2034261]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
| others: | 226ms |
| total: | 410ms |

| 0 / 0 |
