Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.07.23;
Скачать: [xml.tar.bz2];

Вниз

Одна база 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.014 c
10-1122560514
alfer
2005-07-28 18:21
2006.07.23
копирование из БД InterBase в Excel с помощью Delphi


2-1152095613
learner
2006-07-05 14:33
2006.07.23
Единственный NamedPipe сервер с данным именем.


15-1150720933
AlexanderMS
2006-06-19 16:42
2006.07.23
Помогите, пожалуйста перевести на английский язык.


3-1147629839
Моторин Алексей
2006-05-14 22:03
2006.07.23
Как Открыть базу DBF котороя использует инвертируемый индекс


15-1151060280
ilya39
2006-06-23 14:58
2006.07.23
конвертировать QuickTime в DivX





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский