Форум: "Начинающим";
Текущий архив: 2009.04.19;
Скачать: [xml.tar.bz2];
ВнизBDE+paradox Найти похожие ветки
← →
Sergio © (2009-03-03 17:08) [0]Есть давно работающая программа с локальной базой 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.
Кто знает где собака зарыта, чего не хватает?
← →
Ega23 © (2009-03-03 17:10) [1]
> Есть давно работающая программа с локальной базой Paradox.
> Возникла необходимость сделать ее сетевой.
Искренне сочувствую.
← →
mmelik © (2009-03-04 01:50) [2]В свое время я решил подобную задачу следующим образом:
- у каждого клиента создал свою собственную БД (минимально необходимый набор справочников)
- при запуске каждый клиент select`ом (посредством компонента-кверка) перезаполнял свои локальные справочники
- клиент совершенно спокойно работал с локальными данными, а время от времени локальные справочники обновлялись сами (по событию таймера) так же как при старте
- по завершению работы приложение insert`ило данные в общую БД.
Это не самый удачный способ, зато простой и рабочий.
← →
KilkennyCat © (2009-03-04 02:05) [3]ставишь новелл-нетварь и вперед...
← →
Sergey13 © (2009-03-04 08:46) [4]> [0] Sergio © (03.03.09 17:08)
> Есть давно работающая программа с локальной базой Paradox.
> Возникла необходимость сделать ее сетевой.
Хорошая причина для замены СУБД, ИМХО.
Если просто скопировть структуру в ФБ например, то переделки будут не такими уж и большими, если работать через ту же БДЕ. А там уже можно дорабатывать сколько угодно.
← →
MsGuns © (2009-03-04 09:11) [5]В настройках BDE вроде LocalShare = true
Проблема совместного доступа решится, но программа, скорее всего, надежно работать не будет т.к. наверное в ней используется чисто локальная технология (TTable + Master-Detail связки) отчего регулярно слетают индексы и программы отказывается работать.
Решение в коренной переделке программы или еще радикальнее - уход от парадокса в сторону клиент-серверных технологий
← →
mmelik © (2009-03-04 21:09) [6]Control Panel->BDE Administrator->закладка Configuration->Drivers->Native->Paradox
Сделайте где нибудь в сетке каталог, доступный со всех компьютеров, Опция Net Dir должна указывать на всех компьютерах на этот каталог - в нём будут хранится файлы которые обеспечивают раздельный доступ.
← →
sergio © (2009-03-05 08:03) [7]Проблема решилась очень просто.
Сделал базу dBase, скопировал туда содержимое и все работает.
В программе пришлось только добавить расширение dbf.
Не понятен юмор, как устроен Парадокс.
← →
Sergey13 © (2009-03-05 08:50) [8]> [7] sergio © (05.03.09 08:03)
> Проблема решилась
Она, ИМХО, не решилась, а отошла на второй план.
Шило на мыло поменял.
← →
Anatoly Podgoretsky © (2009-03-05 09:18) [9]
> Не понятен юмор, как устроен Парадокс.
Парадоксально.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.04.19;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.055 c