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

Вниз

Одна база Access - несколько клиентов   Найти похожие ветки 

 
DVM ©   (2006-05-19 15:28) [0]

Вопрос, наверное глупый, но все же.
Требуется создать базу на основе Access (ну надо так!) с которой одновременно могли работать 2-5 клиентских приложения на Delphi (через ADO).
Вопрос: Как сделать так, чтобы измения, вносимые в базу одним клиентом сразу виделись другим?


 
Desdechado ©   (2006-05-19 15:30) [1]

переоткрывать наборы данных

но не советую делать это по таймеру или автоматически, как сразу может прийти в голову, - убьют
лучше поставь кнопку "обновить данные"


 
Johnmen ©   (2006-05-19 15:31) [2]

А разве не видятся?

ЗЫ
>Вопрос, наверное глупый,

Плохое вступление.


 
DVM ©   (2006-05-19 15:53) [3]


> А разве не видятся?

Видятся, но после обновления, разумеется. Хотелось бы сразу.

> Плохое вступление.

:)


 
Виталий Панасенко   (2006-05-19 15:53) [4]


> Вопрос: Как сделать так, чтобы измения, вносимые в базу
> одним клиентом сразу виделись другим?

Скажи, на кой мне, пользователю, которго интересует мясо СРАЗУ же видеть, что продали 10 л молока ? Вот когда мне будет интересно молоко...то тогда больше шансов, что другие продают мясо..:-)


 
DVM ©   (2006-05-19 15:56) [5]


> Виталий Панасенко   (19.05.06 15:53) [4]

Тут несколько иная ситуация:
Имеется программа-сервер, которая выполняет некоторые действия, в зависимости от данных в базе. Программы-клиенты (люди) меняют базу, программа-сервер должна реагировать на изменения.

Может уведомлять сервер через сокеты?


 
Johnmen ©   (2006-05-19 15:59) [6]

>DVM ©   (19.05.06 15:56) [5]
>программа-сервер должна реагировать на изменения.

Т.е. эта программа по сути монитор в реальном времени?


 
DVM ©   (2006-05-19 16:01) [7]


> Т.е. эта программа по сути монитор в реальном времени?

Ну да, только еще этот монитор тоже вносит иногда изменения в базу, но их сразу видеть другим клиентам необязательно.


 
Desdechado ©   (2006-05-19 16:04) [8]

если эта такая монитористая программа, так может сделать из нее сервер приложений, и все изменения пропускать через него
тогда уж точно ничего не прозевает, кроме прямого редактирования БД


 
Виталий Панасенко   (2006-05-19 16:10) [9]


> Тут несколько иная ситуация:
> Имеется программа-сервер, которая выполняет некоторые действия,
>  в зависимости от данных в базе. Программы-клиенты (люди)
> меняют базу, программа-сервер должна реагировать на изменения.
>

Но, если я что-то начал делать в соответсвии с данными в БД, то по прошестивии некоторого времени юзера уже поменяют данные. я хочу сказать, что начал ты СЕРВЕРОМ какую-то обработку, ты что, должен проверить "а не поменлись ли за это время условия" и, если да, откатить все, что ты сервером наворотил и начать сначала 7 так можно, при интенсивнйо работе добиться того, что сервре будет отрабатывать ТОЛЬКО после окончания рабочего дня, когда никого нету уже.:-)))


 
Desdechado ©   (2006-05-19 16:13) [10]

Виталий Панасенко   (19.05.06 16:10) [9]
про транзакции не забыл?


 
DVM ©   (2006-05-19 16:16) [11]


> Desdechado ©   (19.05.06 16:04) [8]

Да, вроде бы сервер приложений есть лучшее решение проблемы в данном случае.


 
MsGuns ©   (2006-05-19 16:42) [12]

>DVM ©   (19.05.06 16:16) [11]
>Да, вроде бы сервер приложений есть лучшее решение проблемы в данном случае.

"Третье звено" не поможет отцам русской демократии, желающим видеть "все и сразу".


 
Desdechado ©   (2006-05-19 16:47) [13]

MsGuns ©   (19.05.06 16:42) [12]
почему?
ведь речь о том, что изменение должен видеть этот самый на третьем звене


 
MsGuns ©   (2006-05-19 16:53) [14]

>Desdechado ©   (19.05.06 16:47) [13]
>почему?

А подумать ?


 
Desdechado ©   (2006-05-19 16:58) [15]

MsGuns ©   (19.05.06 16:53) [14]
а прочитать внимательно?
"видеть" означает "знать об изменениях"


 
Виталий Панасенко   (2006-05-19 17:28) [16]


> Desdechado ©   (19.05.06 16:13) [10]
> Виталий Панасенко   (19.05.06 16:10) [9]
> про транзакции не забыл?

Не забыл. Начни длительную транзакцию в блокировочнике - посмотрим что тебе пользоваетели скажут.:-)


 
Desdechado ©   (2006-05-19 17:46) [17]

> Начни длительную транзакцию
я ж не о длительности, а о том, что изменения, произошедшие после старта транзакции, остаются за кадром, как и должно быть
и не будет никаких "ой" при расчетах, кроме, конечно, недовольных ожидающих пользователей


 
YurikGL ©   (2006-05-19 22:02) [18]

Можно использовать более серьезную СУБД, чем Access и на триггер вешать посылку сообщения всем клиентам о том, что произведено изменение....
Однако, ИМХО такой подход не является правильным. Правильным является обновление данных по требованию пользователя.


 
Anatoly Podgoretsky ©   (2006-05-20 14:42) [19]

Только сервер приложений и вся работа через него. Остальное будут изращения разной степени тяжести.


 
Рустем ©   (2006-05-20 15:41) [20]


> Вопрос: Как сделать так, чтобы измения, вносимые в базу
> одним клиентом сразу виделись другим?

1. Создать поле (в какой таблице - сам определись), скажем Integer, куда будет записываться клиентом значение текущего Дата/время, например, используя функцию DateTimeToFileDate, после добавления/редактирования/удаления записей в таблицу(ы).
2. Создать глобальную переменную и при запуске приложения присваивать ей значение поля [1].
3. По таймеру проверять равенство значения переменной [1] со значением поля [2] и в случае расхождения - обновление таблиц(ы).
Естественно, что нужно будет предусмотреть отключение таймера во время изменения записей таблиц(ы)...

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


 
Anatoly Podgoretsky ©   (2006-05-20 16:10) [21]

Вообще то речь про базу, а не таблицу, или ты про глобальную таблицу, одну на всю базу. В нормальной системе могут идти сотни запросов в минуту.


 
Anatoly Podgoretsky ©   (2006-05-20 16:10) [22]

И даже в секунду.



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

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

Наверх




Память: 0.52 MB
Время: 0.03 c
15-1150873232
Rentgen
2006-06-21 11:00
2006.07.23
Точная печать в Excel


15-1150775345
Некто
2006-06-20 07:49
2006.07.23
Была ветка про истории


2-1151952980
HF-Trade
2006-07-03 22:56
2006.07.23
Взять данные со странички....


2-1151756938
простак
2006-07-01 16:28
2006.07.23
маленький вопросик про Memo


2-1152103069
rra
2006-07-05 16:37
2006.07.23
Как можно создать ссылку на файл, разместив ее в ячейке DBGrid a?