Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.20;
Скачать: CL | DM;

Вниз

Работа с базой по сети   Найти похожие ветки 

 
leonon   (2002-12-24 16:03) [0]

Добрый день, уважаемые мастера! Имею базу ПАРАДОКС. Для организации сетевой работы на всех машинах (по совету мастеров, огромное спасибо)прописал
1. NET DIR = \\Boss\Program\Base
2. LOCAL SHARE = TRUE

После этого приложение заработало со всех машин в сети. При этом в папке \Base\ формируются *.lck и *.net одни на всех клиентов.

Но сейчас вылез другой глюк - при открытии базы, а именно TQuery, на любой машине выходит сообщение: Insufficient disk spase, file or directory does not exist. File c:\Program\pdoxusrc.lck и paradox.lck и просит их создать. Что это и как это побороть?


 
Reindeer Moss Eater   (2002-12-24 16:14) [1]

Установить private каталог на локальном диске
Local Share = FALSE


 
leonon   (2002-12-24 16:20) [2]

То есть?


 
Reindeer Moss Eater   (2002-12-24 16:24) [3]

1.Local Share должно быть FALSE
2.PrivatDir сессии рекомендуют держать на локальном диске


 
leonon   (2002-12-24 16:57) [4]

Получается, что для работы сетевого варианта программы необходимо
1. Приложение переписать на все клиентские машины.

2. Путь к базе данных указать относительный \\Boss\Program\Base
На машине, где БД локальная путь писать нормальный c:\Program\Base

3. В настройках БДЕ
NET DIR = \\Boss\Program\Base
LOCAL SHARE = FALSE
В настоящий момент все три машины заработали. Большое спасибо. Может для закрытия вопроса составим схему по которой необходимо осуществлять настойку? :))


 
Reindeer Moss Eater   (2002-12-24 16:59) [5]

Не надо схему.
Надо факи читать.


 
MsGuns ©   (2002-12-24 19:43) [6]

>1. Приложение переписать на все клиентские машины.

Не обязательно. Но для нормального назначения привдира на КАЖДОМ компе надо его либо настроить в BDE либо в самой проге выставлять в TSession (второй способ грамотнее) на диск, где всегда есть ДОСТАТОЧНО ПАМЯТИ (например, "D"). Путь к папке с привдиром из других компов должен быть заказан, по крайней мере на запись. Если на каком-то компе диск "забит", то отправь его (привдир) на сетевой каталог с эксклюзивными правами логина, работающего на этой тачке. Это если есть выделенный сервер. Если нет, освободи место на "забитой" тачке.

Короче,
- PrivDir должен юзаться ТОЛЬКО тем, кто сидит на ДАННОЙ машине, нато он и Private (частная собственность, однако !)
- WorkDir общий для всех с ПОЛНЫМ доступом для всех компов, откуда запускается прога (при этом на самой тачке она может и не находиться)
- NetDir - любой каталог, доступ к которому ПОЛНЫЙ со всех компов

NetDir лучше не совмещать с WorkDir, т.к. если есть несколько РАЗНЫХ БД в разных каталогах, то при запуске каждой проги надо переопределять и его. Этот каталог нужен не БД, а BDE. При этом фиолетово с какой именно БД (WorkDir) в данный момент какая прога работает


PrivDir НИ В КОЕМ СЛУЧАЕ НЕ РАВЕН WorkDir (т.е. папке с базой)



 
Anatoly Podgoretsky ©   (2002-12-24 20:06) [7]

PrivateDir обязательно на локальном диске клиента (можно конечно и на сети, но уникальную для кажого клиента и сессии) - хорошее место папка TEMP{\xxx}, более того желательно для каждого приложения свою и уж в обязательном порядке для каждой сессии!

А вот NET DIR в отдельную от приложений и баз папку, специально создать для этой цели на сервере, полный достуа

Насчет LOCAL SHARE с Reindeer Moss Eater абсолютно несогласен, но попробуй оба варианта, могут быть потери данных при зависании, выключении компьютеров. Это та штука о которой постоянно спорят. Ее побочный эффект немедленная запись на диск.

Твоя проблема возникла из за PrivateDir
Выше описанные рекомендации основываются не только на личном опыте но и на многочисленном опыте большого количество участников конференции fido7.ru.delphi.db, других конференций Борланд и их FAQ


 
MsGuns ©   (2002-12-24 21:18) [8]

>Anatoly Podgoretsky © (24.12.02 20:06)
>Насчет LOCAL SHARE с Reindeer Moss Eater абсолютно несогласен

Поддерживаю Анатолия. Только вот "пробовать" не советую. По крайней мере пока не появится ПОНИМАНИЕ МЕХАНИЗМА РАБОТЫ BDE


 
Reindeer Moss Eater   (2002-12-25 09:03) [9]

Это вы не со мной не согласны, это вы с Валентином Озеровым не согласны


 
leonon   (2002-12-25 10:22) [10]

Это все хорошо, если в приложении использовать TDataBase и TSession. Но как быть в случае, если обращение к таблицам осуществляется без их участия, напрямую, т.е. путем прописывания в TTable или TQuery свойства DatabaseName := путь к БД? Как в этом случае с PrivDir ?


 
Reindeer Moss Eater   (2002-12-25 10:22) [11]

Экземпляр TSession есть всегда.


 
leonon   (2002-12-25 10:34) [12]

Тогда надо установить TTable.SessionName := Default, а у Session.PrivateDir прописать нужный каталог. Правильно?


 
Reindeer Moss Eater   (2002-12-25 10:40) [13]

Правильно



Страницы: 1 вся ветка

Текущий архив: 2003.01.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.02 c
1-62604
Senator
2003-01-09 12:10
2003.01.20
мерцание


14-62728
cyborg
2002-12-31 22:30
2003.01.20
А я уже там, в будущем :)


14-62852
pavel_ak
2003-01-03 00:44
2003.01.20
Нужна ИНФА по TStream


1-62453
Yurko
2003-01-10 01:34
2003.01.20
Hint за курсором


14-62842
Аркадий
2003-01-03 02:44
2003.01.20
система