|
Путь к БД через форму
|
|||
---|---|---|---|
#18+
Подскажите пожалуйста: при запуске приложения отображается окно с указанием пути к БД. Путь сохраняется в текстовом файле по нажатию кнопки ОК. Этот же путь записывается в глобальную переменную в стартовом файле и идет открытие базы данных по указанному пути. База открывается нормально, но при открытии любой формы (таблицы находятся в DE формы) пишет ошибку создания экземпляра курсора по пути, где таблицы находились ранее, во время разработки. Вопрос: что сделано не так и что сделать, чтобы было так как надо. Указывать путь через config.fpw - тогда непонятно как его перезаписывать при изменении пути к БД через форму. Посоветуйте пожалуйста)) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2010, 15:37 |
|
Путь к БД через форму
|
|||
---|---|---|---|
#18+
Я вроде бы внимательно прочитала уже не раз Советы начинающим)). Все сделано практически так, кроме пути к БД. Еще раз: путь к БД указывается интерактивно, при запуске приложения. Т.е. нет возможности прописать его в config.fpw, ну или объясните мне бестолковой поподробнее)) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2010, 15:56 |
|
Путь к БД через форму
|
|||
---|---|---|---|
#18+
1. После выбора пути доступа к базе данных необходимо открыть эту базу данных Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
И не закрывать ее до окончания работы приложения 2. Желательно включить выбранный путь доступа до базы данных в настройку SET PATH Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
3. Только после выполнения первых двух пунктов можно запускать формы для работы с таблицами ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2010, 16:17 |
|
Путь к БД через форму
|
|||
---|---|---|---|
#18+
Спасибо большое)). Не был установлен путь к каталогу по set path to. Спасибо еще раз)) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2010, 16:38 |
|
Путь к БД через форму
|
|||
---|---|---|---|
#18+
ВладимирМ, а еще вопрос можно? Добавила установку set path to, все ок в том случае когда база одна по указанному пути. Но если есть аналогичная база в каталоге где в момент разработки была база, то таблицы открываются именно оттуда. Т.е. на примере: Есть папка C:\Project\DATA\, в которой находится БД tarif_db.dbc, и например С:\DATA\, в которой находится аналогичная БД но с другими данными. Так вот при указании пути к С:\DATA\tarif_db.dbc все вроде бы нормально, проверяю текущую БД-та, что нужно. Но когда открываю любую форму - данные отображаются из другой базы (C:\Project\DATA\tarif_db.dbc). Надеюсь, понятно описала)) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2010, 17:27 |
|
Путь к БД через форму
|
|||
---|---|---|---|
#18+
На момент открытия формы что возвращают Код: plaintext 1. 2. 3.
Там нет путей доступа к директории проекта? Если речь идет об отладке, то желательно копировать EXE в другую директорию. И запускать его там. В этой самой "другой" директории. Причем из проводника (или через ярлык), а не из среды FoxPro. Запуск из директории проекта, скорее всего, приведет к подхватыванию отладочной базы. Если, тем не менее, хотите запускать из директории проекта в процессе отладки, то придется динамически менять пути доступа в DataEnvironment формы. Как это сделать описано здесь http://www.hot.ee/jurisfox/vfp60/de_02_ru.htm ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2010, 17:54 |
|
Путь к БД через форму
|
|||
---|---|---|---|
#18+
?DBC() - путь верный, к той базе, к которой и требуется ?Fullpath("") - как раз к папке с отладочной базой, а не той что нужно ?SET('PATH') - путь верный Т.е. я так понимаю при установке на другую машину, непосредственно дистрибутива готового - проблем с базой возникнуть не должно? Даже если одна база будет лежать в папке рядом с готовым ехе-шником, а другая - где то в сети? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2010, 18:04 |
|
Путь к БД через форму
|
|||
---|---|---|---|
#18+
Попробовала скопировать только ехешник и базу на другой диск - проблема осталась. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2010, 18:08 |
|
Путь к БД через форму
|
|||
---|---|---|---|
#18+
Zitz?Fullpath("") - как раз к папке с отладочной базой, а не той что нужно Вот в этом-то и проблема. Текущей (рабочей) директорией является директория с отладочной базой. Там и происходит поиск ZitzТ.е. я так понимаю при установке на другую машину, непосредственно дистрибутива готового - проблем с базой возникнуть не должно? Даже если одна база будет лежать в папке рядом с готовым ехе-шником, а другая - где то в сети? Не так. Проблем не будет, если по тем путям, по которым FoxPro осуществляет поиск файлов не будет лежать одноименных таблиц. Таблиц с одним и тем же именем, но в разных директориях. Причем именно в тех, где FoxPro осуществляет поиск. А поиск осуществляется по следующим путям: - В директории, сохраненной в DataEnvironment при проектировании формы (Там сохранен относительный путь. Относительно текущей директории) - В текущей (рабочей) директории - По путям указанным в SET PATH Я же специально обратил внимание на то, что Вам надо сделать: - Создать отдельную папку на диске (имя диска роли не играет, важно, чтобы это не была вложенная папка Вашего отладочного проекта) - Скопировать туда готовый EXE - Запустить этот EXE из проводника Windows Смысл этих действий как раз в том и заключается, чтобы изменить текущую директорию. Сделать ее отличной от той, где Вы разрабатывали свой проект. Разумеется, если в программном коде Вы явно не возвращаетесь в нее командами вроде SET DEFAULT CD ============================= Другими словами, на "голой" машине пользователя, где просто нет отладочной базы, никаких проблем не возникнет. Все эти "танцы с бубном" нужны только на Вашей отладочной машине, где есть копия базы данных. Необходимо чтобы по всем возможным путям поиска файлов FoxPro не было файлов с одинаковыми именами. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2010, 20:03 |
|
Путь к БД через форму
|
|||
---|---|---|---|
#18+
Я собственно сразу и проделала те действия, которые Вы порекомендовали. Может я неправильно пояснила. Я попыталась смоделировать ситуацию, когда на машине клиента будет папка с ехешником и в ней же будет папка с базой. А потом клиент захочет подключиться к другой базе, находящейся в другом месте, неважно где. Так вот получается вне зависимости от того куда я указываю путь, подключение пойдет к базе, находящейся в папке с ехе-файлом. Ну по крайней мере, цитирую : "Я же специально обратил внимание на то, что Вам надо сделать: - Создать отдельную папку на диске (имя диска роли не играет, важно, чтобы это не была вложенная папка Вашего отладочного проекта) - Скопировать туда готовый EXE - Запустить этот EXE из проводника Windows" - вот после этих действий - все нормально, открываются данные базы той, которой нужно. Но стоит только скопировать аналогичную базу в папку с ехешником, и сразу данные в формах выводятся именно из нее. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2010, 09:30 |
|
Путь к БД через форму
|
|||
---|---|---|---|
#18+
Zitz, разумеется, так и будет. Владимир Максимов уже дал ответ на Ваш вопрос, остается только цитировать: "- В директории, сохраненной в DataEnvironment при проектировании формы (Там сохранен относительный путь. Относительно текущей директории)". Если каталог существует и содержит таблицы, указанные в DataEnvironment форм, SET PATH игнорируется. Переименуйте папку. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2010, 09:48 |
|
|
start [/forum/topic.php?fid=41&gotonew=1&tid=1585556]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
11ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 366ms |
total: | 503ms |
0 / 0 |