Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Одновременый доступ к данным в файле, как сделать? 
:(
    Опции темы
gesper
  Дата 31.10.2013, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


"Shарфик"
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 23.2.2005

Репутация: 1
Всего: 2



Есть проблема на работе, отсутствие системы документооборота электронных чертежей. За неимением желания и возможности, не знаю чего больше, специализированную программу пока что не ввели администраторы. Я найти бесплатный вариант не смог, чтобы для ряда сотрудников организовать общзий доступ и контроль версий чертежей. Появилась идея, самому написать программу, не сильно замороченную, просто которая ведет БД имеющихся в папке файлов, делает их копии и версии при поступлении новых и выдает пользователям. Проблема в том, как сделать без написания серверной части, только силами клиентской, одновременное чтение таблицы файлов?
xml сразу идет в лес, это понятно, может можно как то через драйвера access храня таблицы в офисном формате базы данных это сделать, у кого есть опыт, подскажите пожалуйста.  
--------------------
...И приколется обломившийся и oбломится приколовшийся...
PM MAIL   Вверх
Antony41
Дата 31.10.2013, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 27.12.2008

Репутация: 1
Всего: 1



Цитата

 Одновременый доступ к данным в файле, как сделать?

Не совсем понял вопрос, но могу сказать лишь одно, что одновременный доступ возможен только при обращении к базе данных.
PM MAIL   Вверх
Illusion Dolphin
Дата 31.10.2013, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 36
Всего: 63



Вы должны задать себе вопросы:
1) Когда появляется "новая" версия. Когда пользователь сохраняет файл? Или нажимает какую-то кнопку?
2) Что делать если 2 пользователя внесли конфликтные изменения?
3) Когда у пользователя обновляется версия
4) Если есть только клиенты, то они клиенты чего? (слово клиент предполагает ещё один суъект)
Вот ответите - можно будет вам советовать smile


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
gesper
Дата 1.11.2013, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


"Shарфик"
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 23.2.2005

Репутация: 1
Всего: 2



Цитата(Illusion Dolphin @ 31.10.2013,  22:04)
Вы должны задать себе вопросы:
1) Когда появляется "новая" версия. Когда пользователь сохраняет файл? Или нажимает какую-то кнопку?
2) Что делать если 2 пользователя внесли конфликтные изменения?
3) Когда у пользователя обновляется версия
4) Если есть только клиенты, то они клиенты чего? (слово клиент предполагает ещё один суъект)
Вот ответите - можно будет вам советовать smile

Отвечу задом на перед..
4) Уговорили, не клиенты, а программа "проводник" которая знает откуда копировать и куда копировать.
3) Некогда, либо открывает файл и редактирует его, либо только читает. При редактировании будет пометка, что он находится в редактировании для других пользователей.
2) Ничего, ситуация исключается пунктом 3.
1) будем считать что по нажатии кнопки в программе.

Я понимаю, что вариант клиент-сервер это супер, но если есть возможность сделать ПО на 20 человек, которое обойдется без такой реализации, то хотел бы попробовать потратить свое время. Вопрос только втом, делать через ADO, может ли оно одновременные соединения позволить в одному файлу или еще как то...
Пока ждал ответа, появилась идея, как сделать контроль файлов, без случайно перезаписи таблиц, но тогда огромное кол-во файлов появится, которые будут маркерами и возможно что чтение запись файла где то будет подтормаживать, особенно при копировании. 

Безтолку наверно все это, приличного ничего не выйдет, только для однопользоватлеьского режима если, чтобы самому иметь версионность чертежей. 
--------------------
...И приколется обломившийся и oбломится приколовшийся...
PM MAIL   Вверх
Akella
Дата 1.11.2013, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Цитата(gesper @  1.11.2013,  00:15 Найти цитируемый пост)
3) Некогда,

Не совсем понятно. Некогда - это нет времени. Никогда - это совсем другое.

Добавлено через 1 минуту и 21 секунду
Цитата(gesper @  1.11.2013,  00:15 Найти цитируемый пост)
При редактировании будет пометка, что он находится в редактировании для других пользователей.


Представь, что я открыл файл для редактирования и ушёл пить кофе или домой. Ну или у меня связь с сервером оборвалась. А метка "о редактировании" так и стоит....

Добавлено через 4 минуты и 3 секунды
Цитата(gesper @  1.11.2013,  00:15 Найти цитируемый пост)
1) Когда появляется "новая" версия. Когда пользователь сохраняет файл? Или нажимает какую-то кнопку?


Цитата(gesper @  1.11.2013,  00:15 Найти цитируемый пост)
1) будем считать что по нажатии кнопки в программе.


Я нажал кнопку. На сервер отправилась команда, что создан новый чертёж. Во время выгрузки чертежа на сервер произошёл сбой... А сервер думает, что новый чертёж есть и он в порядке.
PM MAIL   Вверх
gesper
Дата 1.11.2013, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


"Shарфик"
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 23.2.2005

Репутация: 1
Всего: 2



Цитата(Akella @  1.11.2013,  13:14 Найти цитируемый пост)
Представь, что я открыл файл для редактирования и ушёл пить кофе или домой. Ну или у меня связь с сервером оборвалась. А метка "о редактировании" так и стоит....

Варианта два, это либо он и должен остаться в любом случае, либо активируется "таймаут" сессии.
Цитата(Akella @  1.11.2013,  13:14 Найти цитируемый пост)
Я нажал кнопку. На сервер отправилась команда, что создан новый чертёж. Во время выгрузки чертежа на сервер произошёл сбой... А сервер думает, что новый чертёж есть и он в порядке. 

А зачем ты собираешься писать программу, чтобы она сначала ставила отметку, а потом полняла место? Пускай сначала поставит отметку о возможности появления этого файла("Пользователь Директор загружает данные...."), а когда они сохраняться и пройдет проверка целостности, то выставится отметка о готовности чтения.

Все это мелочи, которые решаются за счет обновления статусов и создания прав\статусов и т.п. 
Есть только одна проблема, без таблицы БД это сложно реализуемо. Знаю что Access позволяет одновременную работу с одним файлом, но это из него самого, а сохраняется ли возможность при работе череза ADO с тем же файлом, без понятия. Не программировал не разу так. Времени на эксперименты просто не хватает.


--------------------
...И приколется обломившийся и oбломится приколовшийся...
PM MAIL   Вверх
Akella
Дата 1.11.2013, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Цитата(gesper @  1.11.2013,  14:08 Найти цитируемый пост)
А зачем ты собираешься писать программу, чтобы она сначала ставила отметку, а потом полняла место?

Я? Нет, я бы так не делал. По твоим словам - это ты бы так делал. Ну ок, я понял, что ты понял )))
PM MAIL   Вверх
Illusion Dolphin
Дата 1.11.2013, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 36
Всего: 63



Всё сугубо имхо
Да, у вас тут серьёзная проблема:
1) Вы не представляете себе как пользователи будут работать с таким софтом и как он будет организован (и как они вас будут ненавидеть с таймаутами итд)
2) Вы не представляете себе сложность такого решение 

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

P.S. а файлы-то в файловой системе? Кто помешает пользователю открыть его и поменять если другой его открыл? Или скопировать в лругое место, поменять и скопировать обратно? А удалято можно? И как вы будите без сервера я слабо представляю.


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0595 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.