Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как я могу известить программу на VB что в таблице появился New Record ? / 11 сообщений из 11, страница 1 из 1
17.09.2002, 12:31:03
    #32050936
Kesha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как я могу известить программу на VB что в таблице появился New Record ?
Как я могу известить программу на VB что в таблице появился New Record ?
...
Рейтинг: 0 / 0
17.09.2002, 12:38:45
    #32050943
DLS
DLS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как я могу известить программу на VB что в таблице появился New Record ?
Наиболее простой способ- проверять по таймеру кол-во записей:
select count(*) from table
...
Рейтинг: 0 / 0
17.09.2002, 12:44:21
    #32050948
Kesha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как я могу известить программу на VB что в таблице появился New Record ?
С timer я сделал, я думал что есть что-нибудь более быстрое.Так приходится часто подключатся.
...
Рейтинг: 0 / 0
17.09.2002, 12:51:16
    #32050954
one_time
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как я могу известить программу на VB что в таблице появился New Record ?
Try to use events and asyncronous recordset. This model work fine and can inform you that some records inserted or updated.
...
Рейтинг: 0 / 0
17.09.2002, 12:57:58
    #32050962
Kesha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как я могу известить программу на VB что в таблице появился New Record ?
А можно по подробней . Насчет asyncronous я понял , а вот как он сообщает об изменениях ? И мне нужно только inserted New Record .
...
Рейтинг: 0 / 0
17.09.2002, 16:01:24
    #32051045
one_time
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как я могу известить программу на VB что в таблице появился New Record ?
ADO 2.7 API Reference

See Also
Visual C++ Example

ADO Event Handler Summary

Applies To: Recordset Object

WillChangeRecordset and RecordsetChangeComplete Events

The WillChangeRecordset event is called before a pending operation changes the Recordset. The RecordsetChangeComplete event is called after the Recordset has changed.

Syntax
WillChangeRecordset adReason, adStatus, pRecordset
RecordsetChangeComplete adReason, pError, adStatus, pRecordset

Parameters
adReason

An EventReasonEnum (see below) value that specifies the reason for this event. Its value can be adRsnRequery, adRsnResynch, adRsnClose, adRsnOpen.

adStatus
An EventStatusEnum status value.
When WillChangeRecordset is called, this parameter is set to adStatusOK if the operation that caused the event was successful. It is set to adStatusCantDeny if this event cannot request cancellation of the pending operation.

When RecordsetChangeComplete is called, this parameter is set to adStatusOK if the operation that caused the event was successful, adStatusErrorsOccurred if the operation failed, or adStatusCancel if the operation associated with the previously accepted WillChangeRecordset event has been canceled.

Before WillChangeRecordset returns, set this parameter to adStatusCancel to request cancellation of the pending operation or set this parameter to adStatusUnwantedEvent to prevent subsequent notifications.

Before WillChangeRecordset or RecordsetChangeComplete returns, set this parameter to adStatusUnwantedEvent to prevent subsequent notifications.

pError
An Error object. It describes the error that occurred if the value of adStatus is adStatusErrorsOccurred; otherwise it is not set.
pRecordset
A Recordset object. The Recordset for which this event occurred.
Remarks
A WillChangeRecordset or RecordsetChangeComplete event may occur due to the Recordset Requery or Open methods.

If the provider does not support bookmarks, a RecordsetChange event notification occurs each time new rows are retrieved from the provider. The frequency of this event depends on the RecordsetCacheSize property.

You must set the adStatus parameter to adStatusUnwantedEvent for each possible adReason value in order to completely stop event notification for any event that includes an adReason parameter.

--------- cut here

EventReasonEnum
Specifies the reason that caused an event to occur.

Constant Value Description
adRsnAddNew 1 An operation added a new record.

--------- cut here

Sorry if i'm not quite right.
...
Рейтинг: 0 / 0
17.09.2002, 17:44:03
    #32051111
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как я могу известить программу на VB что в таблице появился New Record ?
Проверять количество записей в таблице - не совсем корректно. если я удалил запись и тут же добавл новую, то количество записей не изменится.
Можно на все таблицы на Insert навешать триггеры, которые будут модифицировать в специальной вспомогательной таблице запись со вспомогательным timestamp полем. Вспомогательная таблица будет содержать по одной записи на каждую из основных таблиц. По изменению поля timestamp пожно определить, что в таблицу добавлены записи.
Есть еще один механизм, который автоматически использует ADO, если через него ведется работа с таблицей, имеющей PK с identity. Достаточно опросить identity данной таблицы. Если оно не соответствует тому, которое было "видно" при последнем опросе, значит в таблицу кто-то добавил новую запись.
...
Рейтинг: 0 / 0
17.09.2002, 18:23:53
    #32051124
Kesha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как я могу известить программу на VB что в таблице появился New Record ?
identity не подходит так как в таблице данные постоянно меняются .
...
Рейтинг: 0 / 0
17.09.2002, 20:03:15
    #32051148
VAT
VAT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как я могу известить программу на VB что в таблице появился New Record ?
Identity меняется только при insert
...
Рейтинг: 0 / 0
17.09.2002, 20:22:05
    #32051150
Andrew
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как я могу известить программу на VB что в таблице появился New Record ?
To one_time

A WillChangeRecordset or RecordsetChangeComplete event may occur due to the Recordset Requery or Open methods.

Это совсем не то что заказывали.
...
Рейтинг: 0 / 0
17.09.2002, 20:45:41
    #32051156
MiCe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как я могу известить программу на VB что в таблице появился New Record ?
знаю только 3 способа для сервера....
1) писать свою приблуду на каждое изменение и рассылать сетевые эвенты....
2) вешать на сиквел перехватчик внутренних евентов и транслировать как в пункте 1...
3) создать таблицу в которой хранить события.... по тймауту чистить старые..... из приложения постоянно мониторить....
ну и еще для клиента.... как только клиент обновляет данные - оповещать всех остальных....
у всех способов есть свои недостатки....
и из этого следует - , а нужно ли оное?
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как я могу известить программу на VB что в таблице появился New Record ? / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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