Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Путь к базе через файл.
 
 автор: mulrus   (21.09.2009 в 12:42)   личное сообщение
 
 

Здравствуйте народ.

У меня такая ситуация. Есть клиентское приложение в нём есть связанные таблицы на сетевом диске. Происходит следующее.

К примеру я делаю обновление клиентской части, я не знаю какие имена дисков у клиентов которым приложение распространяется и естественно ставлю путь к базам данных по умолчнию, к примеру это C:\my.mdb, а у клиента W:\my.mdb. И когда к клиенту приходит моё обновленное приложение, он переписывает новый клиент и уже к примеру путь W:\my.mdb не работает, так как там естественно путь к моей базе на локальном компе.

Вопрос: можно ли чтобы в каталоге с клиентом лежал какой-нибудь файлик в котором и хранился постоянно путь к базе данных и когда клиентская часть загружается, она из этого файла читала бы путь к базе?

  Ответить  
 
 автор: kot_k_k   (21.09.2009 в 12:55)   личное сообщение
 
 

База с данными находится на сетевом диске и логично задавать путь в Диспетчере связанных таблиц - \\Server\my.mdb, а не привязываться к букве диска.

  Ответить  
 
 автор: mulrus   (21.09.2009 в 13:07)   личное сообщение
 
 

Это я знаю...я жу объяснил...что если переписать нвую версию клиента то путь \\server\my.mdb заменится.

  Ответить  
 
 автор: Sanek   (21.09.2009 в 13:11)   личное сообщение
 
 

Есть еще один простой способ, если известно где будет хранится файл.
Создать на своей машине сетевой диск и на нем необходимой иерархию папок. После чего не надо будет ничего делать с прилинковкой таблиц.

  Ответить  
 
 автор: Sanek   (21.09.2009 в 13:13)   личное сообщение
 
 

Есть еще один простой способ, если известно где будет хранится файл.
Создать на своей машине сетевой диск и на нем необходимой иерархию папок. После чего не надо будет ничего делать с прилинковкой таблиц.

  Ответить  
 
 автор: kot_k_k   (21.09.2009 в 13:52)   личное сообщение
 
 


то путь \\server\my.mdb заменится.


Почему изменится
если это сетевой путь.
С любой машины твоей сети он виден, какой бы буквой не обзывал его, ты обращаешься через "Сетевое окружение-Вся сеть-Microsoft Windows Network-Имя сети-\\Server\файл.

  Ответить  
 
 автор: Sanek   (21.09.2009 в 14:06)   личное сообщение
 
 

Он получает клиента, в котором таблицы привязаны по адресу \\server\my.mdb
Для того, что бы ему сделать какие либо изменения нужно перелинковать таблицы (в диспетчере он делает перелинковку), после чего адрес изменится на с:\my.mdb (что-то типо такого).

  Ответить  
 
 автор: Sanek   (21.09.2009 в 12:57)   личное сообщение
 
 

Сделай при запуске системы перелинковку таблиц в коде. А там можно сделать одним из четырех вариантов (как больше нравится):
1. В коде написать адрес на своей машине и адрес у клиента. Когда пересилыешь клиента, свой адрес коментишь, а другой раскоментируешь. Ну в таком духе.
2. Создать таблицу с двумя полями: Актив (bool) и Путь. Актив в той строчке, на которой должен запускаться клиент. И по подобию 1 пункта линкуешь.
3. Попытаться прилинковать и если будет ошибка выдать диалоговое окно, в котором пользователь будет указывать расположение ядра. Диалоговое окно возвращает адрес ядра и линкуешь как в 1 пункте.
4. Если и клиент и ядро всегда будут находится в одной папке, можно определить расположение клиента и далее как в 1 пункте.

Используя пункты 1 и 2 надо не забывать коментировать не нужный адрес или переставлять Актив.
3 пункт обычно напрягает пользователей.
Пункт 4 удобен, но если точно уверен, что клиент и ядро находтся в одной папке.

  Ответить  
 
 автор: mulrus   (21.09.2009 в 13:11)   личное сообщение
 
 

Всё это конечно хорошо...спасибо....

но хочется все таки по моей задумке...

  Ответить  
 
 автор: snipe   (21.09.2009 в 13:32)   личное сообщение
 
 

а если обновление клиентской части сделать через репликацию....
а таблицу с путями сделать не реплицируемым объектом

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList