![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сообщение об изменениях в БД [D6, MSSQL]
samalex © (2005-02-16 12:55:00)Уважаемые знатоки.
У меня база MSSQL 7.0. Разные пользователи заводят данные.
Вопрос : как программе узнать, что в определенную таблицу внесены или изменены данные? Согласитесь, что проверять постоянно через запросы - это глупо и напряжно для сервера БД.
К примеру, в IB есть "POST_EVENT".
Заранее благодарен.
Ega23 (2005-02-17 14:04:00) [1]что у тебя во всех гридах юзерских автообновление. :)
Во-во! Я тоже так подумал...
Danilka (2005-02-17 14:01:00) [2][27] samalex (17.02.05 13:32)
> Используют вовсю, только под IB.
Да я, вобщем-то, имел ввиду те "крупные задачи", что "катаются на серваке".
> По поводу необходимости
Дык, с этого и надо было начинать, а то сложилось впечатление, что у тебя во всех гридах юзерских автообновление. :)
Ega23 (2005-02-17 13:48:00) [3]По поводу необходимости, я пишу программу вывода аварийных ситуаций, и она должна отображать на экране сообщение сразу, а не ждать нажатия клавиши.
Так бы сразу и сказал.
Создавай отдельный поток и внём пингуй сервер по таймеру. Как только аварийная ситуация - делай свои необходимые действия.
samalex (2005-02-17 13:32:00) [4]Danilka ©
Используют вовсю, только под IB.
По поводу необходимости, я пишу программу вывода аварийных ситуаций, и она должна отображать на экране сообщение сразу, а не ждать нажатия клавиши.
Eda23
xp_sendmail. Ты мне про эту процедуру полный хелп скинул!!! Я бы ее реализовал, но у меня SQL mail не работает ...
Danilka (2005-02-17 12:56:00) [5][23] samalex (17.02.05 12:14)
> Но только проектированием нашего SQL занимались другие люди,
> я пишу под него отдельные задачи
Просто интересно, те задачи, которые писал не ты, там есть автообновление, или нет?
Ega23 (2005-02-17 12:18:00) [6]Отдельно, я не разу не конфигурил почту под SQL, чтобы использовать xp_sendmail. Это сложный процесс?
Я тоже никогда её не конфигурил, поэтому ответить не могу. Но то, что такая системная ХП существует - знаю.
По-поводу блокировки DLL - наверное, во время попытки перезаписи её кто-то использует. Останови всех клиентов данной DLL.
Ega23 (2005-02-17 12:16:00) [7]Согласен с Danilka © (17.02.05 12:02) [22]
samalex (2005-02-17 12:14:00) [8]Ega23 ©
Я признателен за ценные советы по проектированию баз. Но только проектированием нашего SQL занимались другие люди, я пишу под него отдельные задачи, сам я предпочитаю Firebird?, еще я задал вопрос под № 17.
Отдельно, я не разу не конфигурил почту под SQL, чтобы использовать xp_sendmail. Это сложный процесс?
Danilka (2005-02-17 12:02:00) [9][17] samalex (17.02.05 11:40)
> Если кто что посоветует, буду признателен ...
Полное отсутствие автообновлений + кнопка "Обновить". Достаточно для 99.99% систем, начиная от мелких и заканчивая системами маштаба предприятия. Мне не веришь - спроси у тех людей, которые писали "слишком крупные задачи", "катающиеся" у вас на сервере.
Ega23 (2005-02-17 12:01:00) [10]Когда будешь работать с крупными базами (как у меня 5.5 Гб), заговоришь по другому ...
И какая разница - крупная база или мелкая? Если грамотно идеология разработана, то извращаться ни там ни там не придётся.
А извратиться можно и на базе в 5 табличек по 100 записей в каждой...
Sergey13 (2005-02-17 12:00:00) [11][19] samalex (17.02.05 11:59)
Именно поэтому и говорю именно так.
samalex (2005-02-17 11:59:00) [12]Sergey13 ©
Когда будешь работать с крупными базами (как у меня 5.5 Гб), заговоришь по другому ...
Sergey13 (2005-02-17 11:43:00) [13]2[17] samalex (17.02.05 11:40)
>слишком крупные задачи катаются на серваке.
>Если кто что посоветует, буду признателен ...
Плюнь на это, пока те крупняки еще крутятся. А то крутиться перестанут, налетишь по крупному. 8-)
samalex (2005-02-17 11:40:00) [14]Ega23 ©
Спасибо за совет. Я уже думал об использовании почты под SQL, но неприятность в том, что она не настроена и никто мне настраивать ее не даст, слишком крупные задачи катаются на серваке.
Я реализовал свою задачу по-другому.
http://delphiworld.narod.ru/base/mssql_callback.html
Вроде, работает, когда посылаешь извещение отдельному клиенту. Всем не работает. Еще на сервере рождаются какие-то процессы, которые,
во-первых, посылают сообщение с новых портов,
во-вторых, блокируют Dll и не дают ее перезаписать ...
Если кто что посоветует, буду признателен ...
Ega23 (2005-02-17 09:43:00) [15]2 Digitman © (17.02.05 08:29) [15]
А кто мешает ему ПОСЛЕ транзакции мэйлы рассылать? Если она удачно прошла.
А вообще всё в корне неправильно. Не так клиент-сервер надо делать...
Digitman (2005-02-17 08:29:00) [16]
> Ega23 © (16.02.05 17:50) [9]
стоило ли целый талмут здесь цитировать ?)
ты упустил самое важное - вся эта петрушка гроша ломаного не стоит, потому что логика ее - "бежать вперед паровоза" : клиент, сделавший модифицирующий запрос, еще не подтвердил транзакцию (и волен ее откатить, тем самым отменив проделанные им изменения), а почта с извещением о якобы достоверности изменений уже ушла другим заинтересованным клиентам)
Anatoly Podgoretsky (2005-02-17 07:47:00) [17]ЮЮ © (17.02.05 03:49) [12]
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1108557114&n=1
Anatoly Podgoretsky (2005-02-17 07:46:00) [18]Arazel © (16.02.05 22:00) [11]
Хватит спамить
ЮЮ (2005-02-17 03:49:00) [19]>Arazel © (16.02.05 22:00) [11]
Совершенно непонятно, как данная ветка могла сподвигнуть на подовный вопрос? :) Свои вопросы надо оформлять как вопрос, а не цепляться к чужой ветке !!!
Arazel (2005-02-16 22:00:00) [20]А как сделать на DELPHI с ADOQuery1
Чтобы было так
Шагая по первой таблицы (DBGrid1)
а по первой табли и ключу или там индекса
показывалась во второй таблицы (DBGrid2)
Подскажите пожалуста?