|
|
|
| Здравствуйте народ.
У меня такая ситуация. Есть клиентское приложение в нём есть связанные таблицы на сетевом диске. Происходит следующее.
К примеру я делаю обновление клиентской части, я не знаю какие имена дисков у клиентов которым приложение распространяется и естественно ставлю путь к базам данных по умолчнию, к примеру это C:\my.mdb, а у клиента W:\my.mdb. И когда к клиенту приходит моё обновленное приложение, он переписывает новый клиент и уже к примеру путь W:\my.mdb не работает, так как там естественно путь к моей базе на локальном компе.
Вопрос: можно ли чтобы в каталоге с клиентом лежал какой-нибудь файлик в котором и хранился постоянно путь к базе данных и когда клиентская часть загружается, она из этого файла читала бы путь к базе? | |
|
| |
|
|
|
| База с данными находится на сетевом диске и логично задавать путь в Диспетчере связанных таблиц - \\Server\my.mdb, а не привязываться к букве диска. | |
|
| |
|
|
|
| Это я знаю...я жу объяснил...что если переписать нвую версию клиента то путь \\server\my.mdb заменится. | |
|
| |
|
|
|
| Есть еще один простой способ, если известно где будет хранится файл.
Создать на своей машине сетевой диск и на нем необходимой иерархию папок. После чего не надо будет ничего делать с прилинковкой таблиц. | |
|
| |
|
|
|
| Есть еще один простой способ, если известно где будет хранится файл.
Создать на своей машине сетевой диск и на нем необходимой иерархию папок. После чего не надо будет ничего делать с прилинковкой таблиц. | |
|
| |
|
|
|
|
то путь \\server\my.mdb заменится.
|
Почему изменится
если это сетевой путь.
С любой машины твоей сети он виден, какой бы буквой не обзывал его, ты обращаешься через "Сетевое окружение-Вся сеть-Microsoft Windows Network-Имя сети-\\Server\файл. | |
|
| |
|
|
|
| Он получает клиента, в котором таблицы привязаны по адресу \\server\my.mdb
Для того, что бы ему сделать какие либо изменения нужно перелинковать таблицы (в диспетчере он делает перелинковку), после чего адрес изменится на с:\my.mdb (что-то типо такого). | |
|
| |
|
|
|
| Сделай при запуске системы перелинковку таблиц в коде. А там можно сделать одним из четырех вариантов (как больше нравится):
1. В коде написать адрес на своей машине и адрес у клиента. Когда пересилыешь клиента, свой адрес коментишь, а другой раскоментируешь. Ну в таком духе.
2. Создать таблицу с двумя полями: Актив (bool) и Путь. Актив в той строчке, на которой должен запускаться клиент. И по подобию 1 пункта линкуешь.
3. Попытаться прилинковать и если будет ошибка выдать диалоговое окно, в котором пользователь будет указывать расположение ядра. Диалоговое окно возвращает адрес ядра и линкуешь как в 1 пункте.
4. Если и клиент и ядро всегда будут находится в одной папке, можно определить расположение клиента и далее как в 1 пункте.
Используя пункты 1 и 2 надо не забывать коментировать не нужный адрес или переставлять Актив.
3 пункт обычно напрягает пользователей.
Пункт 4 удобен, но если точно уверен, что клиент и ядро находтся в одной папке. | |
|
| |
|
|
|
| Всё это конечно хорошо...спасибо....
но хочется все таки по моей задумке... | |
|
| |
|
|
|
| а если обновление клиентской части сделать через репликацию....
а таблицу с путями сделать не реплицируемым объектом | |
|
| |