Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.13;
Скачать: CL | DM;

Вниз

Как заставить автоматически обновляться ADOQuery ?   Найти похожие ветки 

 
Maxx221177   (2004-05-21 09:48) [0]

Как заставить автоматически обновляться ADOQuery при изменении в таблицах MSSQLServer2000 из которых он тягает данные. Приложение многопользовательское и при внесении данных одним юзером, их сразу должны увидеть другие.


 
Соловьев ©   (2004-05-21 09:52) [1]

Типа я сижу, и тут какой-то м... сохранил данные, а я как раз вводил мин 5 какие-то нужные для отчета данные. И бац - все переоткрылось и мои данные пропали. Я пойду прибью программера который это написал.


 
Maxx221177   (2004-05-21 09:56) [2]

сидит юзер, забивает данные в форму не связанную с данными.
Потом жмет компочку, запускается транзакция которая все это вносит в базу данных. И вот в этот момент другой юзер должен увидеть эти данные в своем "Журнале документов".


 
Sergey13 ©   (2004-05-21 09:57) [3]

2Maxx221177   (21.05.04 09:48)  
Ответь на вопрос зачем это надо? Насколько "сразу должны увидеть другие"?


 
Sergey13 ©   (2004-05-21 10:01) [4]

2Maxx221177   (21.05.04 09:56) [2]
>И вот в этот момент другой юзер должен увидеть эти данные в своем "Журнале документов".
В каком месте журнала он должен их увидеть, если в журнале 100000 документов, он работает с 25000-м а другой юзер исправил/добобавил 99999-й.


 
TohaNik ©   (2004-05-21 10:02) [5]

>их сразу должны увидеть другие.

Не надо "автоматически":) Пусть пользователь сам решает когда
обновляться.


 
Курдль ©   (2004-05-21 10:04) [6]


> запускается транзакция которая все это вносит в базу данных.

Ну а чего ты спрашиваешь! Самое главное о СУБД ты уже знаешь!


 
Maxx221177   (2004-05-21 10:06) [7]

Sergey13 ©   (21.05.04 09:57) [3]

Что-бы открыв список документов, и начав работать в нем через час, юзер уже видел какие документы за этот период были внесены. И при этом бы не нажимал кнопок обновить и т.д.


 
ega23 ©   (2004-05-21 10:07) [8]

Самое главное о СУБД ты уже знаешь!

:о)


 
Соловьев ©   (2004-05-21 10:07) [9]


> Что-бы открыв список документов, и начав работать в нем
> через час, юзер

Так сразу или через час?
Ну так повесь на событие открытия списка - рефреш данных.


 
Maxx221177   (2004-05-21 10:09) [10]

Господа

Я хочу что-бы открыв журнал жокументов с фильтрами за сегодняшнее число, юзер в реальном времени видел как добавляются новые документы.


 
Соловьев ©   (2004-05-21 10:11) [11]


> [10] Maxx221177   (21.05.04 10:09)

Реал-тайм стратегия :)))


 
Maxx221177   (2004-05-21 10:13) [12]

Ладно,
Серьезно.

Кто-нибудь знает как заставить обновляться ADOQuery
(идеи типа по таймеру через 5 минут... не принимаются)


 
Плохиш   (2004-05-21 10:13) [13]


> Maxx221177   (21.05.04 10:09) [10]
> Я хочу что-бы открыв журнал жокументов с фильтрами за сегодняшнее
> число, юзер в реальном времени видел как добавляются новые
> документы.

Так ты хочешь или юзер? :-)
TTimer тебя спасёт


 
Курдль ©   (2004-05-21 10:15) [14]


> Я хочу что-бы открыв журнал жокументов с фильтрами за сегодняшнее
> число, юзер в реальном времени видел как добавляются новые
> документы.

Возможно это и надо, но ведь только тебе известны бизнес-процессы, которые ты автоматизируешь.
Но поверь, что мне за много лет работы ни разу не приходилось сталкиваться с такой проблемой. Ну, например (про работу с документами), пришел бухгалтер и начал составлять отчет.
Открыл окно "Выбор первичных документов" и выбрал таки именно те документы, что были в БД на тот самый момент. Зачем ему еще новее? Не спорю, есть проги, где требуется мгновенное обновление (биржевые терминалы и т.п.) но это для тех юзеров, которые принимают решения "с экрана".


 
Плохиш   (2004-05-21 10:15) [15]


> Maxx221177   (21.05.04 10:13) [12]
> Ладно,
> Серьезно.

Это совершенно не серьёзно

> Кто-нибудь знает как заставить обновляться ADOQuery
> (идеи типа по таймеру через 5 минут... не принимаются)

Поставь таймер на 1 секунду :-|


 
ega23 ©   (2004-05-21 10:16) [16]

Не, конечно можно как-то извратиться. Через xp_cmdshell, чтобы рассылала какую-нибудь пургу на клиетны. При этом на каждую таблицу триггера на все изменения повесить, чтобы эти триггера xp_cmdshell запускали.
Но честно скажу - я такого программера убил бы сразу. Юзверь сам должен решать, когда обновлять данные.
Представь, ты вышел в Инете на, какой-нибудь книжный магазин. Загружаешь информацию о книге, а в это время у них пополнение БД. И ВСЕ ТЕКУЩИЕ ПОСЕТИТЕЛИ магазина начинают "обновляться".


 
Sergey13 ©   (2004-05-21 10:17) [17]

2Maxx221177   (21.05.04 10:13) [12]
>Ладно,
>Серьезно.
>(идеи типа по таймеру через 5 минут... не принимаются)
Ну прими пожалуйста, ну что тебе стоит, умоляю. 8-)


 
Курдль ©   (2004-05-21 10:20) [18]


> Ну прими пожалуйста, ну что тебе стоит, умоляю. 8-)

Да почему? Может он именно биржевой терминал делает! Например, очередь заявок должна иметь квант времени не секунду, а значительно меньше!


 
Sergey13 ©   (2004-05-21 10:28) [19]

2Курдль ©   (21.05.04 10:20) [18]
>Да почему? Может он именно биржевой терминал делает!
Ты думаешь? Бедная биржа. 8-)

2Maxx221177
Прикинь. Сидишь ты в этом форуме. И только хотел в свою ветку ткнуть, а она ба-бах и уже не первая, а третья. Не попал. Хорошо?


 
Maxx221177   (2004-05-21 10:31) [20]

Sergey13 ©   (21.05.04 10:28) [19]
Сижу и думаю что ничего конкретного то и не услышал на свой вопрос:))


 
Rule ©   (2004-05-21 10:32) [21]

палка о двух концах, если пользователь хочет новые данные, пусть рефрешит данные, или если операция какая-нибудь (допустим вывод данных на печать), а если хочешь автоматизировать, тоесть через время самостояетельно рефрешить, то теряешь в производительности, тоесть решай сам ...


 
ega23 ©   (2004-05-21 10:33) [22]

Да почему? Может он именно биржевой терминал делает! Например, очередь заявок должна иметь квант времени не секунду, а значительно меньше!

Сдаётся мне, что не бывает биржевых терминалов под MS SQL...


 
ega23 ©   (2004-05-21 10:36) [23]

Сижу и думаю что ничего конкретного то и не услышал на свой вопрос:))

см 16-й пост. Но это тако-о-ой израт.....
И сдаётся мне, что не услышишь...


 
Курдль ©   (2004-05-21 10:37) [24]


> Maxx221177   (21.05.04 10:31) [20]
> Сижу и думаю что ничего конкретного то и не услышал на свой
> вопрос:))

Да эта тема подымается с периодичностью в 2 дня. Все уже устали спорить, в каких случаях оно надо, а в каких - нет. МОгу кратко резюмировать прежние дебаты - делай аппликэйшн-сервер и управляй обновлениями клиентов с него.


> ega23 ©   (21.05.04 10:33) [22]
> Сдаётся мне, что не бывает биржевых терминалов под MS SQL...

А хз! Я ничему не удивляюсь. Дело ведь не в программистах, а в качественном маркетинговом отделе.


 
Maxx221177   (2004-05-21 10:41) [25]

Господа,

пока с воми общался добрел до очередного трабла:))

MDI приложение, при попытке из одного MDIchild окна обновить ADOQuery в другом вылетает ошибка чтения по адресу..., как быть?


 
Курдль ©   (2004-05-21 10:42) [26]


> MDI приложение, при попытке из одного MDIchild окна обновить
> ADOQuery в другом вылетает ошибка чтения по адресу..., как
> быть?

"В борьбе за свежесть данных пала смертью храбрых логика работы приложения..."  :)


 
Соловьев ©   (2004-05-21 10:43) [27]


> MDI приложение, при попытке из одного MDIchild окна обновить
> ADOQuery в другом вылетает ошибка чтения по адресу..., как
> быть?

использовать Datamodule


 
ega23 ©   (2004-05-21 10:44) [28]

А хз! Я ничему не удивляюсь. Дело ведь не в программистах, а в качественном маркетинговом отделе.

Ну в общем-то да. Это из истории, как MS SQL получил лицензирование на неких объектах, а Оракл - нет. Просто ребята из мелкософта откатили больше, водку выставили получше, девок покрасивше в сауну подогнали. И получили зелёный свет.


 
Maxx221177   (2004-05-21 10:45) [29]

Курдль ©   (21.05.04 10:42) [26]

>"В борьбе за свежесть данных пала смертью храбрых логика >работы приложения..."  :)

Еще не пала, пока добиваю :))


 
Курдль ©   (2004-05-21 10:48) [30]


> Maxx221177   (21.05.04 10:45) [29]

Ну расскажи, что ли, какую общую цель преследуешь? Хоть из какой области проект? Вопрос со складом-магазином вызвал деление 50/50 сторонников и противников автообновления.


 
Rem   (2004-05-21 10:55) [31]

2 Maxx221177

Зря ты затеял тут эту дискуссию. Ничего путнего тут не подскажут. Подобный вопрос задают тут уже далеко не первый раз. Реакция почти всех мастеров и прочих: "Это не нужно, потому что это не нужно никому".

P.S. Надо обновлять не весь ADOQuery, а только добавленные или измененые записи.

P.P.S. Если нужно, заходи в MSN Messenger: remenyak@hotmail.com. Расскажу как это делается и как это должно работать.

P.P.P.S. Я бы руки поотрубал тому программеру, который бы заставил меня давить кнопку "Refresh" в уже открытом журнале всякий раз, когда я начинаю сомневаться, изменились данные или нет. Эдакий чат получается... с ручной прокруткой.


 
Емахо!   (2004-05-21 10:55) [32]

to Maxx221177
НЕ парься сильно. Купи книгу Елмановой-Тенцера "Delphi и технология COM" только возьми синюю. Конкретно глава 12 "Технология DataSnap" стр. 558 "Нотификация в технологии DataSnap" все оч. подробно объяснено


 
Maxx221177   (2004-05-21 10:56) [33]

Курдль ©   (21.05.04 10:48) [30]

>Ну расскажи, что ли, какую общую цель преследуешь?

Розничный склад с большим ассортиментом.
Заказ собирается из множества позиций


 
Емахо!   (2004-05-21 11:00) [34]

>>Розничный склад с большим ассортиментом.
>>Заказ собирается из множества позиций

У меня примерно аналогичная задача. :))))) Ток информационная система пишется, которая вообще отслеживает все, несчитая прихода-расхода товара


 
Емахо!   (2004-05-21 11:00) [35]

>>Розничный склад с большим ассортиментом.
>>Заказ собирается из множества позиций

У меня примерно аналогичная задача. :))))) Ток информационная система пишется, которая вообще отслеживает все, несчитая прихода-расхода товара


 
bushmen ©   (2004-05-21 11:02) [36]

>Розничный склад с большим ассортиментом.

И что, каждый оператор сидит за открытым окном журнала документов и упорно глядит весь день на него? :)
По-моему, он его откроет только тогда, когда к нему подойдет клиент, а потом закроет


 
Курдль ©   (2004-05-21 11:05) [37]


> Розничный склад с большим ассортиментом.
> Заказ собирается из множества позиций

Ну говорили же, что здесь нужен другой подход.
Открываешь заказ - блокируешь товар - выбираешь товар - утверждаешь заказ - обновляешь товар - разблокируешь товар.


 
Maxx221177   (2004-05-21 11:05) [38]

bushmen ©   (21.05.04 11:02) [36]

Ну иногда сидит и глядит.

А иногда у него пос..ть всемени нет, не то что refresh нажать


 
Sergey13 ©   (2004-05-21 11:08) [39]

2Maxx221177   (21.05.04 10:56) [33]
>Розничный склад с большим ассортиментом.
>Заказ собирается из множества позиций
И все опять упирается в единственный чайник на весь склад который собрались купить сразу 10 человек. 8-)
(недавно был пример с чайником - если кто не в курсе)


 
ega23 ©   (2004-05-21 11:09) [40]

Есть вариант. Делай по таймеру пинг: обновились ли записи в БД. Если обновились, то полный рефреш, раз это тебе так надо. Если нет, то дальше сидишь и дёргаешь коротенький запрос.



Страницы: 1 2 вся ветка

Текущий архив: 2004.06.13;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.073 c
14-1085382669
Monster
2004-05-24 11:11
2004.06.13
ДВИЖОК


11-1075137019
NavigatorV
2004-01-26 20:10
2004.06.13
Компонент TKOLMHDateTimePicker


1-1086244146
Vlad Oshin
2004-06-03 10:29
2004.06.13
Какое время указывается в TSearchRec? создания? посл. обращения?


1-1086044926
Dark Man
2004-06-01 03:08
2004.06.13
работа с dll вызов процедур программы из dll


1-1086024148
Delphin
2004-05-31 21:22
2004.06.13
Есть код, только при попытке компиляции, орёт, что какая-то там о