Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

BDE+paradox [D6, XP]


Sergio ©   (2009-03-03 17:08:00) 

Есть давно работающая программа с локальной базой Paradox. Возникла необходимость сделать ее сетевой. Ничего не получается. Если работает один пользователь, то все нормально. При подключении второго – Cannot access directory file y:\tables\pdoxusrs.lck.
Сделано на Delphi 6, BDE 5.01. В настройках BDE менял наверно все: net dir, local share, strictintegrty и то, что вроде бы к делу не относится. База подключена как сетевой диск («y»), пробовал разные варианты. В программе тоже перепробовал все, что мог, и так:
Session1.NetFileDir := 'y:\tables\';
Session1.PrivateDir := 'c:\temp\';
И так:
Check(DbiSetPrivateDir('d:\temp'));
И не используя Session
Разумеется Table1.Exclusive := False.
Если запускать два экземпляра программы на одной машине, то все работает нормально (если PrivateDir разные), а с двух не работает.
И еще вопрос. При запуске в PrivateDir создаются paradox.lck и pdoxusrs.lck, а в NetDir – pdoxusrs.net и также два файла .lck. Правильно ли это. Почему при блокировании доступа для второго пользователя BDE ссылается на pdoxusrs.lck из NetFileDir.
Кто знает где собака зарыта, чего не хватает?


Anatoly Podgoretsky   (2009-03-05 09:18:00) [1]


> Не понятен юмор, как устроен Парадокс.

Парадоксально.


Sergey13   (2009-03-05 08:50:00) [2]

> [7] sergio ©   (05.03.09 08:03)

> Проблема решилась
Она, ИМХО, не решилась, а отошла на второй план.
Шило на мыло поменял.


sergio   (2009-03-05 08:03:00) [3]

Проблема решилась очень просто.
Сделал базу dBase, скопировал туда содержимое и все работает.
В программе пришлось только добавить расширение dbf.
Не понятен юмор, как устроен Парадокс.


mmelik   (2009-03-04 21:09:00) [4]

Control Panel->BDE Administrator->закладка Configuration->Drivers->Native->Paradox

Сделайте где нибудь в сетке каталог, доступный со всех компьютеров, Опция Net Dir должна указывать на всех компьютерах на этот каталог - в нём будут хранится файлы которые обеспечивают раздельный доступ.


MsGuns   (2009-03-04 09:11:00) [5]

В настройках BDE вроде LocalShare = true

Проблема совместного доступа решится, но программа, скорее всего, надежно работать не будет т.к. наверное в ней используется чисто локальная технология (TTable + Master-Detail связки) отчего регулярно слетают индексы и программы отказывается работать.

Решение в коренной  переделке программы или еще радикальнее - уход от парадокса в сторону клиент-серверных технологий


Sergey13   (2009-03-04 08:46:00) [6]

> [0] Sergio ©   (03.03.09 17:08)
> Есть давно работающая программа с локальной базой Paradox.
> Возникла необходимость сделать ее сетевой.

Хорошая причина для замены СУБД, ИМХО.
Если просто скопировть структуру в ФБ например, то переделки будут не такими уж и большими, если работать через ту же БДЕ. А там уже можно дорабатывать сколько угодно.


KilkennyCat   (2009-03-04 02:05:00) [7]

ставишь новелл-нетварь и вперед...


mmelik   (2009-03-04 01:50:00) [8]

В свое время я решил подобную задачу следующим образом:
- у каждого клиента создал свою собственную БД (минимально необходимый набор справочников)
- при запуске каждый клиент select`ом (посредством компонента-кверка) перезаполнял свои локальные справочники
- клиент совершенно спокойно работал с локальными данными, а время от времени локальные справочники обновлялись сами (по событию таймера) так же как при старте
- по завершению работы приложение insert`ило данные в общую БД.

Это не самый удачный способ, зато простой и рабочий.


Ega23   (2009-03-03 17:10:00) [9]


> Есть давно работающая программа с локальной базой Paradox.
>  Возникла необходимость сделать ее сетевой.


Искренне сочувствую.


Наверх

Титульная страница Поиск, карта сайта Написать письмо