Главная страница
    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.55 MB
Время: 0.052 c
9-1076777727
Anton
2004-02-14 19:55
2004.06.13
Как загрузить рисунки как элементы массива?


4-1083823284
alsov1
2004-05-06 10:01
2004.06.13
Как считать уникальный номер с CD и есть ли такой вообще?


14-1085407404
dimm22
2004-05-24 18:03
2004.06.13
Нужна ваша помощь ! Помогите убедить колегу.


14-1085740950
syte_ser78
2004-05-28 14:42
2004.06.13
Плагиат?


14-1085645763
rim
2004-05-27 12:16
2004.06.13
Вопрос





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский