|
|
|
Как отследить изменение в таблице 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 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
Насколько я понял. Последовательность следующая: При запуске клиента, он подключается к dll. Далее при обновлении данных в таблице срабатывает триггер, происходит подключение к dll, в dll генерируется событие, на которое реагирует клиент и запускает Recordset. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2008, 21:24 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
Что такое BOL не знаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2008, 21:50 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
Тогда советую вам узнать, это B ooks O n L ine — справочная система MSSQL. Берите и читайте. Для 2005 версии есть даже на русском языке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2008, 22:01 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
Читал. В частности сегодня все что нашел по ADO - пересмотрел. Но так и не понял как с помощью Recordset добавить только недавно поступленные данные либо выявить, грубо говоря, из 100 полей только то одно которое обновилось. Ну а по поводу отслеживания изменения в базе данных на этом форуме опытные программисты очень много вели дискуссии. я же не претендую на звание программиста, можно просто направить на раздел или статью где это описано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2008, 22:12 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
В BOL нужно почитать про sp_OACreate и sp_OAMethod. Та последовательность, что вы описали, будет работать только если клиент и сервер находятся на одном компьютере. Я говорил о другом. Клиент не подключается к dll. dll ставится на сервер. При срабатывании триггера dll не генерит событие, а отправляет пакет по сети, на определенный ip или имя компьютера или на несколько компьютеров. На заранее определенный порт. Клиент постоянно слушает этот порт, когда на него приходят данные, реагирует. Отправка и прием данных по сети делается с помощью Microsoft Winsock Control. В четвертый раз я это повторять уже не буду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2008, 10:26 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
Спасибо. В моем случае клиент и сервер на одном компьютере. Возможно в будующем появится необходимость в удаленном уведомлении. Единственное хотелось бы знать насколько высокая будет производительность в обоих случаях. Если данные обновляются несколько раз в секунду насколько быстро будут поступать обновленные данные в клиент на одном компьютере и через сеть? И вообще возможны ли потери некоторых данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2008, 10:47 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
Если данные обновляются раз в секунду, то система будет в основном занята перегоном данных между клиентом и сервером, работать на ней будет нереально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2008, 12:05 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
* несколько раз в секунду ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2008, 12:06 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
Не могли бы привести пример какого-нибудь события в dll, на которое будет реагировать клиент? Т.е. клиент постоянно должен быть в ожидании этого события? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2008, 21:20 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
И насколько я понимаю это событие можно напрямую вызвать из MS SQL? Или оно должно наступать при обращении к dll? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2008, 21:22 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
proftsНе могли бы привести пример какого-нибудь события в dll, на которое будет реагировать клиент?О господи! Не бывает событий в dll. Событие случается в твоей базе данных - добавилась строка например. На таблице висит триггер. Этот триггер отследив что произошло добавление строки обращается к функции которая находится во внешней dll. В качестве параметра для этой функции передает список всех подключенных к базе в данную секунду клиентов и их IP адреса. Функция проходит по всему списку клиентов, устанавливает с каждым клиентом TCP туннель и посылает по нему сообщение "такая-то таблица обновилась". (Если не хочешь с TCP туннелем возится, можешь ограничиться UDP пакетами, но они имеют право теряться. Подробнее читай учебник по сетям) proftsТ.е. клиент постоянно должен быть в ожидании этого события?Да. Каждый клиент базы данных все это время сидит и ждет пока та самая функция из dll не попытается с ним связаться. А когда она связалась и сообщила что какая-то таблица обновилась, клиент должен будет посмотреть: а показывает ли он в данное время эту таблицу вообще или пользователь держит открытым другое окно. А потом из того-то же информационного пакета в котором приехало имя таблицы, клиент вытащит первичные ключи обновленных записей, и перезапросит эти записи с сервера. Потом добавит/удалит/изменит эти записи на визуальном отображении таблицы. После чего клиент заснет в ожидании следующей посылки по уже установленному каналу связи либо открытия нового канала. И если ты еще не догадался - этот канал связи по которому сервер сообщает клиенту о появлении новых записей это совсем не тот же самый канал связи по которому клиент тянет данные с сервера. У тебя будет в итоге два канала. Один для данных, другой для событий на сервере. Теперь понял? Или еще дальше разжевывать? И сразу говорю - ни один DBGrid самостоятельно это все делать не умеет. И наборы компонентов которые умеют так работать стоят очень и очень большие деньги. proftsИ насколько я понимаю это событие можно напрямую вызвать из MS SQL? Или оно должно наступать при обращении к dll?Ты никогда сам события не вызываешь. Вообще. На то они и события. События случаются и они уже вызывают твои функции и процедуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2008, 22:43 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
По поводу события не так выразился. В голове понимаю о чем хочу спросить, а терминологию практически не знаю. А по поводу DBGrid и набора компонентов на самом деле слышу первый раз. Вообще изначально думал, что такая задача как обновление данных в клиенте - абсолютно обычная и простая задача, описание которой должно быть чуть ли не в первой главе каждого учебника. Как мне казалось что база данных для того и создается, чтобы в любое время можно было легко воспользоваться ее данными. К тому же занялся этим вопросом после того как один из знакомых проделал тоже самое на Oracle и особых проблем у него с этим не возникло. (знакомый может громко сказано в том плане, что просто так делиться своими наработками он ни с кем не будет, в том числе со мной). Тогда вообще не понимаю где камень преткновения и что в данном случае будет стоить очень и очень большие деньги. Как же другие это делают. Как пример на этом же форуме есть другая тема с такой же задачей. Там ее решили через блокировку таблицы (например) на сервере, триггер обравает блокировку, а клиент находится в ожидании обрыва. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2008, 00:11 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
proftsВообще изначально думал, что такая задача как обновление данных в клиенте - абсолютно обычная и простая задача, описание которой должно быть чуть ли не в первой главе каждого учебника.Ну не знаю насчет учебников, но задача в обычной постановке действительно очень простая: Код: plaintext 1. 2. 3. 4. А если задача ставится так, чтобы сервер сообщал клиенту что данные обновились - вот тогда начинаются игры с дополнительными каналами связи. Читай выше. proftsТогда вообще не понимаю где камень преткновения и что в данном случае будет стоить очень и очень большие деньги.если знаешь что и как - никаких камней :) Но чтобы это реально сделать тебе нужно быть одновременно и специалистом в базах данных (чтобы написать триггер) и специалистом в твоей конкретной СУБД (иначе не сможешь связать триггер с внешней dll) и уметь посылать сообщения по сети (чтобы написать эту самую dll) и уметь принимать эти сообщения... То есть это либо один универсал (а мы дорогие) Либо команда из нескольких человек. proftsКак же другие это делают. Как пример на этом же форуме есть другая тема с такой же задачей. Там ее решили через блокировку таблицы (например) на сервере, триггер обравает блокировку, а клиент находится в ожидании обрыва.Ну а как именно клиент ждет обрыва этой самой блокировки? Механизм ожидания там какой? И вообще, о какой блокировке в том топике шла речь? Если о транзакционных блокировках, то они триггером не обрываются в принципе и клиент ждет ответа всегда автоматически. Если самодельные блокировки подвластные триггерам - то опять вопрос: как клиент узнает что блокировка снялась? Тут только два пути - либо перезапрашивать постоянно, либо изобретать свою реализацию server push. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2008, 00:46 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
По поводу блокировки: Так вот, создаем заблокированный ресурс - ну собственно как угодно, да хоть вот так: begin transaction one select * from link with (holdlock) waitfor delay '00:01:00' commit Ну ясный пень, я таблу взял просто для демонстрации, фактически можно работать даже без таблы, а просто по именованной транзакции. Но это более сложная техника, я ее тут не буду описывать. После создания заблокированного ресурса - наслаждаемся списком заблокированных ресурсов: exec sp_lock и наконец, АСИНХРОННО из клиента выдаем: Insert link default values Ну, на самом деле, конечно, в зависимости от установок может потребоваться Insert link with (holdlock) default values - я думаю, вы понимаете это и я не заостряю на этом внимание. Так вот, эта последняя команда благополучно виснет, до того момента, пока первая транзакция не завершится и ресурс не освободится. Когда ресурс освободится, то - подчеркиваю - и в ADO и в ADO.NET - возникает событие завершения этой асинхронной команды. Которое, собственно говоря и есть наше оповещение клиента о событиях сервера. Техника освобождения ресурсов стандартная - их множество разных - это не суть вопроса. Логика подписки реализуется в данных таблы link, которая собственно и возвращается клиенту после возникновения события. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2008, 08:09 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
При работе с триггерами эта схема применима только с использованием именованной транзакции. А вот интересно стало, какую задачу вы хотите решить с этими уведомлениями? Может эта возня имеет смысла не больше, чем попытка прикрутить к велосипеду ласты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2008, 10:31 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
я на это уже намекал автору. похоже, что он с того конца копает :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2008, 11:00 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
Задача следующая. В MS SQL поставляются котировки ценных бумаг в реальном времени и накапливается история по ним. Допустим таблица с 10-ю записями (каждая запись для отдельной акции) и 10 полями в каждой записи (параметры по каждой отдельной бумаге). Клиент производит анализ данных как за длительный период (день - неделя), так и за короткий (от часа вплоть до последней поступившей котировки) и на основе анализа принимает решение об осуществлении покупки/продажи(через API) определенной акции. Собственно весь этот процесс был организован на Access. Access принимал данные по ODBC, по таймеру с интервалом примерно 150 мс происходил анализ данных (т.е. независимо от того произошли изменения или нет). И из него же поступали транзакции. Вообщем нагрузка была достаточно большая и хотелось как-то уйти от этих таймеров плюс появилась необходимость в написании отдельного клиента, через которого происходило бы управление всем процессом. Может вы и правы. Для начала реализую задачу с помощью обычных запросов клиента через опред. интервал. Далее будет видно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2008, 11:22 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
Т.е. каждые 150 мс заново происходил анализ всех ста параметров (а точнее истории данных параметров) данной таблицы, хотя за это время могло измениться всего один или два. А если в дальнейшем их будет больше? (а это обязательно будет) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2008, 11:26 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
> Автор: Konst_One > я на это уже намекал автору. похоже, что он с того конца копает :) Да не мешайте человеку работать. :)) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2008, 11:29 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
> Автор: profts > Т.е. каждые 150 мс заново происходил анализ всех ста параметров (а > точнее истории данных параметров) данной таблицы, хотя за это время могло > измениться всего один или два. А если в дальнейшем их будет больше? (а это > обязательно будет) Ну так заведи в базе таблицу в которую будут складыватся результаты анализа. А сам анализ проводи в тригерах и результат анализа заноси в эту таблицу. А читай уже готовые данные. Тогда у тебя будут данные анализа всегда актуальны сразу после вставки данных, и программе нужно будет только перечитать их, а не пересчитывать каждые 150 мс -- С уважением Горбонос Игорь Леонидович Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2008, 11:35 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
> Да не мешайте человеку работать. :)) Да уж. С учетом того, что человек два месяца об Accesse слышал только то, что он входит в пакет MS Office, а по поводу программирования - видел в книжном кучу книг с непонятными названиями. :) Поэтому даже то что проделал - считаю для себя пусть небольшим, но достижением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2008, 11:35 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
авторКлиент производит анализ данныхЭто операция программная или этим занимается человек? Если программная, то я бы попробовал перенести анализ в триггер, а клиенту отдавать только уведомления о покупке/продаже. Скорее всего, таких случаев меньше, чем "бездействие", т.е. не покупаем и не продаем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2008, 11:40 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
> Это операция программная или этим занимается человек? Если программная, то я бы попробовал перенести анализ в триггер, а клиенту отдавать только уведомления о покупке/продаже. Скорее всего, таких случаев меньше, чем "бездействие", т.е. не покупаем и не продаем. Да, конечно программная. Собственно осуществить переход с Accessa и решил только из-за отсутсвия в нем триггеров. А триггер умеет реагировать на изменение отдельного поля или все-таки вешается целиком на таблицу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2008, 11:44 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
> Автор: profts > А триггер умеет реагировать на изменение отдельного поля или все-таки > вешается целиком на таблицу? вешается на таблицу целиком, но в нем есть COLUMNS_UPDATED с помощью которого можно проверять какие столбцы изменялись -- С уважением Горбонос Игорь Леонидович Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2008, 11:53 |
|
||
|
Как отследить изменение в таблице MS SQL?
|
|||
|---|---|---|---|
|
#18+
sql-сервер , блокирует запись которая обновляется (не поле!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2008, 11:55 |
|
||
|
|

start [/forum/topic.php?all=1&fid=60&tid=2162081]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
138ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
82ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 450ms |

| 0 / 0 |
