Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Две копии приложения и одна таблица [D7, Paradox]


Интересующийся ©   (2006-08-31 22:19:00) 

Я столкнулся со следующей проблемой:
При работе с двумя копиями приложения при изменении значения поля таблицы в одном приложении значение этого поля во втором приложении остается прежнем.

Как сделать так чтобы значение обновлялось сразу после изменения и отображалась одинаково?

P.S.
Если возможно подскажите плиз варианты многопользовательской работы с таблицами (*.db и *.dbf)


Сергей М.   (2006-09-01 16:37:00) [1]


> мне кажется, что будет проще сообщать всем копиям о изменениях
> данных.
>


Правильно тебе кажется.


> как это реализовать?


С использованием Парадокса - только реализовав трехзвенку.


Интересующийся   (2006-09-01 16:35:00) [2]

Данные обновляются нетак часто....
Максимум что я могу позволить обновлять кажую минуту.

Но мне кажется, что будет проще сообщать всем копиям о изменениях данных.

Но как это реализовать?
Возможно создать чтото вроде хука, но это будет работать в пределах одной машины....


Reindeer Moss Eater   (2006-09-01 16:23:00) [3]

Тогда непрерывно открывай и закрывай датасет


Интересующийся   (2006-09-01 16:19:00) [4]

Система реального времени....
Они нужны так часто как они обновляются.


Reindeer Moss Eater   (2006-09-01 16:13:00) [5]

Забудь про это.
Тебе нужны актуальные данные?
Как только они тебе действительно нужны - открой датасет заново.


Интересующийся   (2006-09-01 16:07:00) [6]

>Виталий Панасенко   (31.08.06 23:06) [5]
>Anatoly Podgoretsky ©   (31.08.06 23:25) [6]
>
> Соль еще в том, что человек работает - редактирует, двигается по гриду, >просто смотрит на него анализирует данные, а тут его обухом по голове, не >фиг сиотрет, посмотри лучше на это и дергают ему грид. После этого
>начинаешь ненавидеть этих продвинутых на голову программистов.
>
>BoxTer ©   (01.09.06 11:51) [10]
>
>Desdechado прав. Юзеры будут выть от бесконечных дерганий грида. Данные на клиента поступают после запроса, и никак иначе...

Самому такая фигня нетравится :)

Но для рассатриваемава вопроса движение грида как раз отсутствует, а есть запись в таблице (не TTable) которую в данный момент редактит другой пользователь и пока он ее редакти все нормально....

>Desdechado ©   (01.09.06 11:20) [9]
>
>PS Не исключено, что есть и другие полезные, для других задач. Но поскольку сама задача не озвучена, предполагаю самое распространенное.
>
>BoxTer ©   (01.09.06 11:51) [10]
>
> Desdechado прав. Юзеры будут выть от бесконечных дерганий грида. Данные на клиента поступают после запроса, и никак иначе...

Отна таблица (DB-файл), две копии приложения приложения в итоге следующая ситуация:

1. При добавлении новой записи, удалении или редактировании существующей в одной копии ее грид изменяется и все идет нормально, но второе приложение показывает что эти данные есть или они неменялись :(

Как результат пользователь второго приложения ничего незнает о действиях первого.

2. Кроме грида изменение невидят и остальные компоненты получающие данные из TTable

Отсюда следующий вывод - или данные непоподают из приложения в файл, что маловероятно или данные записываются но второе приложение об этом незнает.

P.S.
Хотелось бы чтобы при любых изменения все копии знали об этом и корректно отоброжали эту информацию.


BoxTer   (2006-09-01 11:51:00) [7]

Desdechado прав. Юзеры будут выть от бесконечных дерганий грида. Данные на клиента поступают после запроса, и никак иначе...


Desdechado   (2006-09-01 11:20:00) [8]

Германн ©   (01.09.06 01:52) [8]
Гланды через ж..у - это тоже возможный вариант. Но не мой. Мои обкатаны временем и пользователями.

PS Не исключено, что есть и другие полезные, для других задач. Но поскольку сама задача не озвучена, предполагаю самое распространенное.


Германн   (2006-09-01 01:52:00) [9]


> Desdechado ©   (31.08.06 22:32) [4]
>
> Нормальный способ работы с данными такой: ты попросил, тебе
> показали.
> Сами данные не напрашиваются для показа.
> Поэтому, если хочешь видеть изменения, сделанные другими,
>  переоткрой запрос к данным. регулярность переоткрытия обычно
> определяется пользователем, но может программироваться и
> по таймеру, например.
> <Цитата>
>
> Виталий Панасенко   (31.08.06 23:06) [5]
>
> вся соль - зачем видеть все сразу ?!!! продаем колбасу,
> а нам, оказывается, жутко интресно, сколько конфет осталось
> ! и наоборот, продаю конфеты, а мне тут собщаю, что колбасы
> то уже нету, сожрали, гады !...так интересно !!!
> <Цитата>
>
> Anatoly Podgoretsky ©   (31.08.06 23:25) [6]
>
> Соль еще в том, что человек работает - редактирует, двигается
> по гриду, просто смотрит на него анализирует данные, а тут
> его обухом по голове, не фиг сиотрет, посмотри лучше на
> это и дергают ему грид. После этого начинаешь ненавидеть
> этих продвинутых на голову программистов.
>


Ну только не надо ограничивать возможные варианты работы с базами данных Вашими предстрастиями или Вашими возможностями!


Германн   (2006-09-01 01:47:00) [10]

Имхо, для Парадокса (db) есть(был) подобный механизм. См. cbTABLECHANGED  в BDE32.hlp. Я не смог его изучить с целью реального применения, просто "пошёл другим путём". Может тебе повезёт больше?


Anatoly Podgoretsky   (2006-08-31 23:25:00) [11]

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


Виталий Панасенко   (2006-08-31 23:06:00) [12]

вся соль - зачем видеть все сразу ?!!! продаем колбасу, а нам, оказывается, жутко интресно, сколько конфет осталось ! и наоборот, продаю конфеты, а мне тут собщаю, что колбасы то уже нету, сожрали, гады !...так интересно !!!


Desdechado   (2006-08-31 22:32:00) [13]

Нормальный способ работы с данными такой: ты попросил, тебе показали.
Сами данные не напрашиваются для показа.
Поэтому, если хочешь видеть изменения, сделанные другими, переоткрой запрос к данным. регулярность переоткрытия обычно определяется пользователем, но может программироваться и по таймеру, например.


Reindeer Moss Eater   (2006-08-31 22:29:00) [14]

Можно. Дай.


Интересующийся   (2006-08-31 22:28:00) [15]

А нельзя их обновлять по событию?
Типа дать сигнал всем копия о том что было изменение или другим образом.....


Reindeer Moss Eater   (2006-08-31 22:22:00) [16]

Табличные значения полей копируются в приложение в момент открытия таблицы приложением.


Наверх

Титульная страница Поиск, карта сайта Написать письмо