|
|
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
Как в реальном времени отслеживать появление новой строки в таблице в MS SQL Server и отправлять новое значение в прогу, написанную на VB? Просто не совсем понятно следуюшее. Если пользуюсь триггером, то иннициировать коннект с прогой на VB можно с помощью какой-то процедуры прописанной в самом триггере? (если да, то где про это можно прочитать. книг много, можно просто ткнуть в название раздела.) Насколько я понимаю триггер должен реагировать на появление новой записи и через ADO отправлять ее в прогу. Или все-таки коннект идет со стороны проги, которая делает запрос в базу данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2008, 21:29 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
http://www.tek-tips.com/viewthread.cfm?qid=1258158 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2008, 21:43 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
В двух словах: одно приложение (ваша база с триггерами) посылает переменную в другое приложение (ваш VB клиент). В VB клиенте пишется соответствующий event. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2008, 21:48 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
Да примерно так я и понимаю. Просто не могу найти информацию о том как в триггере прописать процедуру на отсылку переменной. Т.е с помощью какого оператора или функции происходит соединение с клиентом? Хотя бы как называется раздел на эту тему. Единственное нашел как из клиента с помощью ADO Recordset вытащить переменную из БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2008, 22:05 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
1) сейчас точно не могу сказать, но где-то в мсдн видел статью, в которой описывалось отслеживание изменений в базе в ее основе лежало открытие рекордсета в режиме adLockBatchOptimistic вот тут немного можно почитать 2) а если просто по таймеру делать MyRecordset.Resync ? I Have Nine Lives You Have One Only THINK! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2008, 08:28 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
можно создать таблицу журнала новых строк , в триггере при ввод новой строки, ввести процедуру ввода информации в эту таблицу журнала, а через ADO по таймеру отслеживть таблицу журнала и после получения информации очищать таблицу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2008, 07:41 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
надо что-то в консерватории подправить!!! сервер этим заниматься не должен и не обязан. займитесь правильным проектированием своей системы для начала, а то вы решаете проблемы не с того конца. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2008, 11:25 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
Можно так: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2008, 13:31 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
AntonariyМожно так: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2008, 17:39 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
или ставить и настраивать нотификейшен сервер от 2005 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2008, 21:34 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
Вот как раз сейчас пытаюсь разобраться с notification serviсes. и чем больше про них читаю, тем более убеждаюсь что это не совсем то. а вот по поводу dll не совсем понял. что в принципе должна делать dll и какое событие генерировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2008, 13:46 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
DLL должна в принципе каким-нибудь способом сообщать клиентам, что произошло изменение. Какое событие? Любое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2008, 14:22 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
Я просто новичок в этом деле, поэтому не совсем понимаю. Неужели нельзя повесить триггер на таблицу (что я уже сделал), который реагирует на изменение и при срабатывании его с помощью Recordseta посылать клиенту обновление данных? или сервер не может быть инициатором соединения? (т.е. для начала нужно сообщить клиенту об изменении и из клиента делать запрос данных) И еще по поводу Recordseta. Как сделать запрос именно на добавление новых данных, а не на полное обновление, например, всей таблицы целиком? Все копаюсь в ADO и никак не могу найти то что нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2008, 15:56 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
proftsили сервер не может быть инициатором соединения? (т.е. для начала нужно сообщить клиенту об изменении и из клиента делать запрос данных) Да. В общем случае : вы посылаете запрос, сервер отвечает на запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2008, 16:17 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
SQL Server не может быть инициатором соединения, а рекордсет нельзя просто взять и "послать". "Просто" рескордсет можно только получить. Все остальное — сложно. И не нужно. Инициатором соединения может быть библиотека, которую можно дернуть из триггера. Для этого клиент должен прослушивать какой-нибудь порт. При получении данных на этот порт, клиент может проанализировать то, что пришло, и действовать в зависимости от результатов анализа, например получить заново какой-то набор данных. В этом сучае клиент является сервером для библиотеки. Запрос на добавление и рекордсет не имеют ничего общего. Запрос на добавление это cn.Execute "insert into tbl1 (col1, col2 …". Добавление через рекордсет это rs.AddNew: rs("col1").Value = 1: rs.Update/UpdateBatch (в зависимости от курсора и блокировки). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2008, 16:24 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
Спасибо. Только теперь начинает все расставляться по полочкам. А как быть с рекордсетом и с запросом на обновление данных? Где хотя бы можно прочитать про это? Т.е. произошло обновление данных, уведомили клиента, как теперь из клиента сделать запрос на получение новых данных. (допустим добавилась запись в таблице или изменилось одно из полей) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2008, 16:26 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
авторА как быть с рекордсетом и с запросом на обновление данных? Где хотя бы можно прочитать про это?Что конкретно не понятно? На примере. авторкак теперь из клиента сделать запрос на получение новых данныхТочно так же как и старых. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2008, 16:30 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
По поводу запроса просто неверно выразился. Допустим есть таблица со 100000 строк. добавляется еще одна строка. как произвести обновление на клиенте добавив именно эту строку, а не добавляя снова всю таблицу целиком. хотя бы пример ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2008, 16:33 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
Для этого нужно в пакете, который отправит библиотека оповещения (будем называть ее так), прописать идентификатор добавленной записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2008, 16:43 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
Самое очевидное решение — отправлять клиенту примерно такую запись: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2008, 16:47 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
А собственно зачем вообще нужна dll. почему триггер, реагирующий на изменение/добавление в таблице сам не может генерировать событие? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2008, 17:17 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
proftsА собственно зачем вообще нужна dll. почему триггер, реагирующий на изменение/добавление в таблице сам не может генерировать событие?Может конечно, может и будет. От триггера ты никуда не денешься. Но это событие должно каким-то образом попасть на клиента верно? А если СУБД сама по определению не может ничего послать клиенту (она только отвечает на запросы!), то как ты собираешься делать эту самую посылку клиенту? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2008, 17:50 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
declare @objMyClass int, @hr int EXEC @hr = sp_OACreate 'MyLib.MyClass', @objMyClass OUTPUT EXEC @hr = sp_OAMethod @objMyClass, 'FireNotification', @results OUTPUT, @param1, @param2, … Извините за такой вопрос, но все-таки. Для чего нужен выше описанный текст? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2008, 18:06 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2008, 18:47 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
А нормально ответить трудно? Два месяца назад я не знал что такое Access, SQL, VB и т.д. Появилась некая задача, начал разбираться, читать и т.д. Изначально все было реализовано в Access. Но современем выяснилось, что его возможностей недостаточно для полноценного решения всех задач. Пошел дальше. В итоге разобрался с MS SQL. Ровно настолько насколько мне было нужно. Разобрался с написанием клиента на VB. Единственное что осталось - обновление данных в клиенте. Я прошу просто подсказать, если сложно, то дать ссылку, где можно прочитать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2008, 21:22 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=35403062&tid=2162081]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
69ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 385ms |

| 0 / 0 |
