![]() |
|
|
![]()
|
|
| Governor |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 13.4.2005 Где: Москва Репутация: нет Всего: нет |
Дано:
Программа на Delphi 5, использующая базы данных Paradox 7 и BDE 2.0 Надо: Переделать программу на многопользовательскую версию. Вопрос: с чего начать и в какой последовательости делать? Условие: в сетях я полный чайник. |
|||
|
||||
| ~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 4 Всего: 68 |
Начинаем с изучения SQL(MySQL), ADO, DAO, Jet, DBase etc.
А вообще конкретезируйте плз, сколько в БД таблиц, сколько записей, загруженность, сколько пользователей и т.д. И вообще, что прога делает. Добавлено @ 13:37 А исходники порги кстати есть? Если да то копаем их и понимаем, что к чему. На основе этого делаем вывод - стоит ли переписывать исходники или стоит написать все заново. |
|||
|
||||
| Governor |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 13.4.2005 Где: Москва Репутация: нет Всего: нет |
~FoX~
Прога моя, так что есть не только исходники, но и их понимание Таблиц 74 штуки общим объемом 2 мегабайта. Записей не много (максиму 500). Пользователей от 1 до 5. Прога разработана для упаковщиков и делает много чего. Цель сетевой версии разделить тех, кто вводит и готовит данные и тех, кто их обрабатывает. Загруженность БД ожидается низкая. Так что предпочтение я бы отдал наиболее простым и дешевым способам. |
|||
|
||||
| ~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 4 Всего: 68 |
Governor
Наиболее простой способ - реализовать все это на базах mdb. И разобраться с SQL. Проще не бывает. |
|||
|
||||
| Governor |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 13.4.2005 Где: Москва Репутация: нет Всего: нет |
~FoX~
Короче, все надо под Access переделывать на ADO? А потом базу размещать в сети и делать общим ресурсом? Access разрешает конфликт одновременного доступа к записи? Или придется что-то еще дописывать? |
|||
|
||||
| bursa |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 25.2.2005 Где: Липецк Репутация: 1 Всего: 1 |
Самое простое и под делфи заточенное - InterBase. И компонентов полно бесплатных. И транзакции есть.
Добавлено @ 08:06 И бесплатные версии IB есть |
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 6 Всего: 55 |
На самом деле, и с парадоксовской базой в сети вполне нормально работает когда речь идет о невысокой нагрузке. Главное правильно настроить BDE. Тогда скорее всего и существующую программу переделывать не придется.
Хотя конечно, на будущее, использование SQL-сервера, например Interbase/FireBird, это более предпочтительное решение. Но, тогда наверняка придется полностью переделывать твою программу. -------------------- Все знать невозможно, но хочется |
|||
|
||||
| Governor |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 13.4.2005 Где: Москва Репутация: нет Всего: нет |
Петрович
А как его правильно настроить, кроме установки алиаса на сетевой ресурс? |
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 6 Всего: 55 |
На всех машинах надо выставить значение NET DIR. Важно, что бы на всех машинах использующих одну БД, этот параметр указывал на одну и ту же папку. Естественно, эта папака должна быть расшарена на одном из компов. Обычно, используется папка в которой размещается сама БД.
Установить этот параметр можно в настройках BDE, но, правильнее будет сделать это в настройках сессии, в начале работы программы. -------------------- Все знать невозможно, но хочется |
|||
|
||||
| Governor |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 13.4.2005 Где: Москва Репутация: нет Всего: нет |
Что-то я не понял, где этот параметр устанавливается. И как это делается в настройках сессии? |
|||
|
||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 2 Всего: 7 |
Мое мнение надо делать на MSSQLServer2000 чтобы не было потом мучительно больно. Вот действительно, не система - золото.
|
|||
|
||||
| Governor |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 13.4.2005 Где: Москва Репутация: нет Всего: нет |
Попробовал сейчас перекинуть базу данных на сервер и просто сделать алиас на эту папку на двух компьютерах. Запустил программу одновременно на двух компьютерах, вроде работает без проблем. Какие могут быть подводные камни?
PS в программе ничего не изменял. |
|||
|
||||
| Петрович |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 6 Всего: 55 |
Вообще то, с этого обычно и начинают
В основном, проблемы бывают при одновременном внесении изменении в одну и ту же запись с разных компьютеров. -------------------- Все знать невозможно, но хочется |
||||
|
|||||
| Governor |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 13.4.2005 Где: Москва Репутация: нет Всего: нет |
Вот я об этом и хочу узнать: как отреагирует программа на одновременное изменение одной и той же записи (экспериментально проверить это пока не получается)? Надо ли что-то изменить в программе, чтобы конфликт разрешался корректно или это берет на себя ОС + СУБД? |
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 6 Всего: 55 |
Обычно, нельзя полагаться на волю случаю (читай ОС + СУБД) Способов много, чсе зависит от семантики задачи, и возможностей СУБД. Про парадокс уже не помню, пользовался ОЧЕНЬ давно. Кажется там есть возможность блокирования записи, тогда от этого и пляшем. Короче, попробуй на двух компах запустить прогу в которой датасет соединен с одной таблицей. Потом, спозиционируй их на одну запись и сделай следующее: на компе 1: Edit измени поле X на компе 2: Edit измени поле X на компе 1: Post на компе 2: Post И посмотри реакцию на последнее действие. -------------------- Все знать невозможно, но хочется |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |