Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание сетевых многопользовательских приложений, С чего начать? 
:(
    Опции темы
Governor
Дата 13.4.2005, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 13.4.2005
Где: Москва

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



Дано:

Программа на Delphi 5, использующая базы данных Paradox 7 и BDE 2.0

Надо:

Переделать программу на многопользовательскую версию.

Вопрос: с чего начать и в какой последовательости делать?
Условие: в сетях я полный чайник.
PM MAIL ICQ   Вверх
~FoX~
Дата 13.4.2005, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


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

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



Начинаем с изучения SQL(MySQL), ADO, DAO, Jet, DBase etc.
А вообще конкретезируйте плз, сколько в БД таблиц, сколько записей, загруженность, сколько пользователей и т.д. И вообще, что прога делает.
Добавлено @ 13:37
А исходники порги кстати есть?
Если да то копаем их и понимаем, что к чему. На основе этого делаем вывод - стоит ли переписывать исходники или стоит написать все заново.


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Governor
Дата 13.4.2005, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 13.4.2005
Где: Москва

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



~FoX~
Прога моя, так что есть не только исходники, но и их понимание smile
Таблиц 74 штуки общим объемом 2 мегабайта. Записей не много (максиму 500). Пользователей от 1 до 5. Прога разработана для упаковщиков и делает много чего. Цель сетевой версии разделить тех, кто вводит и готовит данные и тех, кто их обрабатывает. Загруженность БД ожидается низкая. Так что предпочтение я бы отдал наиболее простым и дешевым способам.
PM MAIL ICQ   Вверх
~FoX~
Дата 13.4.2005, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


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

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



Governor
Наиболее простой способ - реализовать все это на базах mdb.
И разобраться с SQL.
Проще не бывает.


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Governor
Дата 13.4.2005, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 13.4.2005
Где: Москва

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



~FoX~

Короче, все надо под Access переделывать на ADO?
А потом базу размещать в сети и делать общим ресурсом?

Access разрешает конфликт одновременного доступа к записи? Или придется что-то еще дописывать?
PM MAIL ICQ   Вверх
bursa
Дата 15.4.2005, 08:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Самое простое и под делфи заточенное - InterBase. И компонентов полно бесплатных. И транзакции есть.
Добавлено @ 08:06
И бесплатные версии IB есть
PM MAIL   Вверх
Петрович
Дата 19.4.2005, 08:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



На самом деле, и с парадоксовской базой в сети вполне нормально работает когда речь идет о невысокой нагрузке. Главное правильно настроить BDE. Тогда скорее всего и существующую программу переделывать не придется.
Хотя конечно, на будущее, использование SQL-сервера, например Interbase/FireBird, это более предпочтительное решение. Но, тогда наверняка придется полностью переделывать твою программу.


--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
Governor
Дата 19.4.2005, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 13.4.2005
Где: Москва

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



Петрович
А как его правильно настроить, кроме установки алиаса на сетевой ресурс?
PM MAIL ICQ   Вверх
Петрович
Дата 19.4.2005, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



На всех машинах надо выставить значение NET DIR. Важно, что бы на всех машинах использующих одну БД, этот параметр указывал на одну и ту же папку. Естественно, эта папака должна быть расшарена на одном из компов. Обычно, используется папка в которой размещается сама БД.
Установить этот параметр можно в настройках BDE, но, правильнее будет сделать это в настройках сессии, в начале работы программы.


--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
Governor
Дата 20.4.2005, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 13.4.2005
Где: Москва

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



Цитата
Установить этот параметр можно в настройках BDE, но, правильнее будет сделать это в настройках сессии, в начале работы программы.


Что-то я не понял, где этот параметр устанавливается. И как это делается в настройках сессии?
PM MAIL ICQ   Вверх
Bes
Дата 21.4.2005, 06:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Мое мнение надо делать на MSSQLServer2000 чтобы не было потом мучительно больно. Вот действительно, не система - золото. smile
PM MAIL   Вверх
Governor
Дата 21.4.2005, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 13.4.2005
Где: Москва

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



Попробовал сейчас перекинуть базу данных на сервер и просто сделать алиас на эту папку на двух компьютерах. Запустил программу одновременно на двух компьютерах, вроде работает без проблем. Какие могут быть подводные камни?

PS в программе ничего не изменял.
PM MAIL ICQ   Вверх
Петрович
Дата 21.4.2005, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Governor @ 21.4.2005, 13:24)
Попробовал сейчас перекинуть базу данных на сервер и просто сделать алиас на эту папку на двух компьютерах. Запустил программу одновременно на двух компьютерах, вроде работает без проблем. Какие могут быть подводные камни?

Вообще то, с этого обычно и начинают smile.
Цитата
Какие могут быть подводные камни?

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


--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
Governor
Дата 22.4.2005, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 13.4.2005
Где: Москва

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



Цитата
В основном, проблемы бывают при одновременном внесении изменении в одну и ту же запись с разных компьютеров.

Вот я об этом и хочу узнать: как отреагирует программа на одновременное изменение одной и той же записи (экспериментально проверить это пока не получается)? Надо ли что-то изменить в программе, чтобы конфликт разрешался корректно или это берет на себя ОС + СУБД?
PM MAIL ICQ   Вверх
Петрович
Дата 22.4.2005, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Governor @ 22.4.2005, 16:15)
Надо ли что-то изменить в программе, чтобы конфликт разрешался корректно или это берет на себя ОС + СУБД?

Обычно, нельзя полагаться на волю случаю (читай ОС + СУБД) smile.
Способов много, чсе зависит от семантики задачи, и возможностей СУБД. Про парадокс уже не помню, пользовался ОЧЕНЬ давно. Кажется там есть возможность блокирования записи, тогда от этого и пляшем.
Короче, попробуй на двух компах запустить прогу в которой датасет соединен с одной таблицей. Потом, спозиционируй их на одну запись и сделай следующее:
на компе 1:
Edit
измени поле X
на компе 2:
Edit
измени поле X
на компе 1:
Post
на компе 2:
Post
И посмотри реакцию на последнее действие.


--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

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

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


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


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

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

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


 




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


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

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