powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / пути к базе данных
25 сообщений из 92, страница 1 из 4
пути к базе данных
    #37403727
Allkay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создан проект на VFP9.
Структура:
-Class
-Data (одна база данных, в ней хранятся все таблицы)
-Form
-Help
-Menus и тд.
Требуется: переместить папку Data (с базой данных) на другой диск (отдельно от .exe).
Вопрос: как из проекта настроить «доступ» к этой папке? Чтобы после компиляции проект обращался к этой папке извлекал, удалял, сохранял данные.
...
Рейтинг: 0 / 0
пути к базе данных
    #37403814
reware
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AllkayСоздан проект на VFP9.
Структура:
-Class
-Data (одна база данных, в ней хранятся все таблицы)
-Form
-Help
-Menus и тд.
Требуется: переместить папку Data (с базой данных) на другой диск (отдельно от .exe).
Вопрос: как из проекта настроить «доступ» к этой папке? Чтобы после компиляции проект обращался к этой папке извлекал, удалял, сохранял данные.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
************************************************
FUNCTION SetPath
************************************************
workdir2=JUSTPATH(ALLTRIM(SYS( 16 , 0 )))
workdir='"'+workdir2+'"'
IF .not. RIGHT(workdir2, 1 )=='\'
	workdir2=workdir2+'\'
ENDIF
CD &workdir
RETURN
...
Рейтинг: 0 / 0
пути к базе данных
    #37403952
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Расположение файлов проекта

В настройке SET PATH можно указывать не только абсолютные, но и относительные (относительно текущей директории) пути доступа. Если текущей директорией является та, внутри которой и расположены созданные директории, то перемещение в другое место не портебует никаких изменений в настройках. Для большинства задач этого вполне достаточно.
...
Рейтинг: 0 / 0
пути к базе данных
    #37405786
Allkay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как правильно заполнить файл config.fpw?
В нем:
Как правильно прописать путь, с помощью опции PATH, к директории data с Базой Данных :
- на диске
- на сервере
При компиляции где должна находиться папка data с Базой Данных ?
...
Рейтинг: 0 / 0
пути к базе данных
    #37405915
reware
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AllkayКак правильно заполнить файл config.fpw?
В нем:
Как правильно прописать путь, с помощью опции PATH, к директории data с Базой Данных :
- на диске
- на сервере
При компиляции где должна находиться папка data с Базой Данных ?
А зачем это всё кино надо ? Запускаем приложение, оно открывает локальный файл (типа CONFIG.DBF), читает оттуда путь к БД. Нашлась БД - всё ОК, работаем с ней, не нашлась - выдать запрос на указание папки с БД и если мы указали какой-то новый путь к папке БД, то записываем его в CONFIG.DBF для следующих запусков. Автор сам себе головную боль зарабатывает.
...
Рейтинг: 0 / 0
пути к базе данных
    #37406062
Allkay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смысл в чем, есть готовый проект и все данные проекта, и таблицы с данными хранятся в БД «BD1» в папке DATA.
Мне нужно переместить эту папку на другой диск или сервер (не важно), и прописать путь к БД.
Проблема:
Как разделить проект с БД.
-Если папка data расположена вместе с проектом проблем нет.
-Если папка data расположена на другом диске выдает сообщение об ошибке (нет «BD1»).
Прописать пути к БД в файл config.fpw, только к папке или к каждой таблице в БД.
...
Рейтинг: 0 / 0
пути к базе данных
    #37406148
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже давно бы попробовали. Делов-то, переименовать старую папку с данными (чтобы "скрыть" ее от проекта) и создать новую (можно на то же компьютере). Затем поиграться с путями доступа, чтобы все заработало.

AllkayПрописать пути к БД в файл config.fpw, только к папке или к каждой таблице в БД.
Как Вы себе представляете прописывание пути доступа (без собственно имени файла) к каждой таблице в БД? SET PATH - это адреса папок. Как Вы собираетесь записать здесь адреса таблиц?
...
Рейтинг: 0 / 0
пути к базе данных
    #37406209
reware
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AllkayСмысл в чем, есть готовый проект и все данные проекта, и таблицы с данными хранятся в БД «BD1» в папке DATA.
Мне нужно переместить эту папку на другой диск или сервер (не важно), и прописать путь к БД.
Проблема:
Как разделить проект с БД.
-Если папка data расположена вместе с проектом проблем нет.
-Если папка data расположена на другом диске выдает сообщение об ошибке (нет «BD1»).
Прописать пути к БД в файл config.fpw, только к папке или к каждой таблице в БД.
А на фиг тут вообще вам config.fpw ? Да храните путь к БД в локальной табличке (где много прочего мусора) типа CONFIG.DBF (если есть желание, даже в текстовом файле) и берите этот путь при каждом запуске приложения. Проверили при запуске, а есть ли в этой папке какой-нить характерный файл. Если есть, да, это та самая папка. Если файла нет, то увы, облом, предлагается окошко для выбора папки.
...
Рейтинг: 0 / 0
пути к базе данных
    #37406326
Allkay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал. Переименовал папку, даже создал новый проект, но после запуска положения он ищет папку с базой данных у себя в папке “Proect”. Прописал в файле config.fpw путь (SET PATH TO D:\BD\DATA) доступа к папке data – но он все равно ищет в папке “Proect”.
...
Рейтинг: 0 / 0
пути к базе данных
    #37406359
Allkay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
reware,

Потому что все советуют указывать путь к БД в файле config.fpw.
Сохраню путь в текстовом файле, а как брать путь из текстового файла при каждом запуске приложения.?
...
Рейтинг: 0 / 0
пути к базе данных
    #37406365
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Чтобы определить какой именно файл конфигурации подхватывается при запуске EXE используйте функцию SYS(2019)
2. Если Вы хотите использовать настройку PATH в файле конфигурации, то убедитесь, что у Вас не используется настройка SET PATH в коде программы, поскольку она может затереть настройки файла конфигурации (если нет опции ADDITIVE)
3. Если используются относительные пути доступа, то принципиально важным становится директория по умолчанию относительно коьторой эти пути и будут определяться

Для справки :

В файле config.fpw синтаксис настройки имеет вид

PATH=D:\BD\DATA

В файле PRG синтаксис настройки имеет вид

SET PATH TO D:\BD\DATA
...
Рейтинг: 0 / 0
пути к базе данных
    #37406427
reware
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Allkayreware,

Потому что все советуют указывать путь к БД в файле config.fpw.
Сохраню путь в текстовом файле, а как брать путь из текстового файла при каждом запуске приложения.?
Да бог с ним текстовым. Что мешает хранить этот путь в локально-эксклюзивном CONFIG.DBF ? Открыли его штатно, прочли этот путь, зашли в эту папку (если таковая обнаружена), совпал (по наличию какого-то характерного файла) путь с нужным - переключаемся на эту папку. Нет этого "характерного" файла, значит не та папка - выдаём диалог для выбора другой папки. Кронштейн ?
...
Рейтинг: 0 / 0
пути к базе данных
    #37406469
Allkay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ1. Чтобы определить какой именно файл конфигурации подхватывается при запуске EXE используйте функцию SYS(2019)
2. Если Вы хотите использовать настройку PATH в файле конфигурации, то убедитесь, что у Вас не используется настройка SET PATH в коде программы, поскольку она может затереть настройки файла конфигурации (если нет опции ADDITIVE)
3. Если используются относительные пути доступа, то принципиально важным становится директория по умолчанию относительно коьторой эти пути и будут определяться

Для справки :

В файле config.fpw синтаксис настройки имеет вид

PATH=D:\BD\DATA

В файле PRG синтаксис настройки имеет вид

SET PATH TO D:\BD\DATA

С помощью функцию SYS(2019) проверил файл конфигурации: D:\uasnewexp\config.fpw.
В файле config.fpw прописал путь: PATH=D:\database\data\.
С компилировал проект, запустил – ответ системы: D:\uasnewexp\data\bduaski.dbc – файл не существует. А должен был искать: D:\database\data\
...
Рейтинг: 0 / 0
пути к базе данных
    #37406474
Allkay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ни чего не мешает!! только знать бы, как его создать, где хранить, и как штатно открывать?
Я новичок на FOXe поэтому пока не очень «Кронштейн»
...
Рейтинг: 0 / 0
пути к базе данных
    #37406726
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AllkayС помощью функцию SYS(2019) проверил файл конфигурации: D:\uasnewexp\config.fpw.
В файле config.fpw прописал путь: PATH=D:\database\data\.
С компилировал проект, запустил – ответ системы: D:\uasnewexp\data\bduaski.dbc – файл не существует. А должен был искать: D:\database\data\
Вообще-то, проверять надо было из запускаемого приложения. В смысле, из EXE. Ну, например, где-то в начале главного (стартового) файла проекта записать нечто вроде

Код: plaintext
MessageBox("config = " + SYS( 2019 ) + chr( 13 ) + "path = " + SET("PATH"))

Дело в том, что если файл Config.FPW включен внутрь EXE, то в первую очередь будут использоваться настройки этого самого "включенного" файла.

Можно еще использовать ключ -C (латинская буква "С"), чтобы явно задать файл конфигурации, который следует использовать. Примерно так

Код: plaintext
MyProg.EXE -C"D:\database\data\config.fpw"

Здесь MyProg.exe - это Ваше приложение, скопилированное в EXE-файл.

И еще, я бы посоветовал открывать контейнер базы данных "вручную" в главном стартовом файле проекта ДО открытия каких-либо форм. Примерно так

Код: plaintext
1.
2.
OPEN DATABASE bduaski.dbc SHARED
SET DATABASE TO bduaski

====================

То, о чем говорит reware - это следующая стратегия.

1. Создается специальный файл DBF, который НЕ включен в контейнер базы данных. Так называемая, свободная таблица. В проекте это узел "Free Tables" на закладке Data.

2. Ну, структура этой таблицы может быть разной, но суть в том, что определенном поле определенной записи записан путь доступа к базам данных.

3. Данный файл DBF всегда кладется рядом с EXE в ту же самую директорию. Другими словами, этот файл всегда находится в директории по умолчанию.

4. В момент открытия приложения в главном стартовом файле проекта предпринимается попытка открыть эту таблицу прямой командой USE и прочитать настройку путей доступа. Далее командой SET PATH эти настройки устанавливаются.

Разумеется, пункт 4 должен быть еще окружен рядом дополнительных проверок, как на факт существования такой таблицы, так и на факт существования нужной записи и нужного значения. Все это дополнительно программируется и обрабатываться возможные ошибки.


Собственно, это тот же Config.fpw, но "вид сбоку". Преимущества данного способа в том, что кроме пути доступа можно хранить ряд других локальных настроек приложения. Хотя особого практического смысла это и не имеет, поскольку те же локальные настройки можно хранить и на сетевом ресурсе.

Я бы сказал так. Пока Вы не разберетесь, почему через config.fpw у Вас не работает, пытаться использовать файл DBF для подобных настроек - не стоит. Вы просто повторите все те ошибки, которые уже сделали для config.fpw, но запутаетесь еще больше, поскольку тут будет больше кода. Как следствие, больше мест, где можно ошибиться.
...
Рейтинг: 0 / 0
пути к базе данных
    #37407388
Allkay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прописал в головной программе:
MessageBox("config = " + SYS(2019) + chr(13) + "path = " + SET("PATH"))
OPEN DATABASE bduaski.dbc SHARED
SET DATABASE TO bduaski
С компилировал без ошибок. Запустил.
Он ответил:
-[config = D:\uasnew1\config.fpw]
-[path = D:\database\data\]
Нажал ОК!:
-ошибка: файл D:\uasnew1\data\bduaski.dbc не существует
Нажал ОК!:
-ошибка: файл не существует data\bduaski
Нажал ОК!: - выкидывает из программы.

Может я не правильно отделил БД от проекта?
...
Рейтинг: 0 / 0
пути к базе данных
    #37407415
rikitiki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я сделал форму
txt
button
локальная база в которую записую пути
при запуске проги вылетает форма
нажал на кнопочки, настроил пути, запомнил и работаешь
...
Рейтинг: 0 / 0
пути к базе данных
    #37407437
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Allkay,
Так кто ж знает, как ты ее отделял
...
Рейтинг: 0 / 0
пути к базе данных
    #37407530
Allkay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изначально проект создавался в месте с папкой data.

Отделил не правильно и не корректно. Перенес из одного места в другое.(Если кто знает скажите как правильно)

Нужно что бы «uasoao.exe» знал где сидит «bduaski.dbc».
...
Рейтинг: 0 / 0
пути к базе данных
    #37407650
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Allkay,

А в проект эта база данных у тебя включена? См. на вкладке Data
...
Рейтинг: 0 / 0
пути к базе данных
    #37407700
Allkay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да.
...
Рейтинг: 0 / 0
пути к базе данных
    #37407857
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Allkay,

Поскольку база данных у тебя включена в проект, можешь встать на нее и внизу увидишь соответствующий путь к ней. Вот она и открывается, а то что ты как бы исключил из проекта, ровным счетом ничего не значит.
...
Рейтинг: 0 / 0
пути к базе данных
    #37407867
Allkay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прописал в головной программе:
MessageBox("config = " + SYS(2019) + chr(13) + "path = " + SET("PATH"))
OPEN DATABASE bduaski.dbc SHARED
SET DATABASE TO bduaski
С компилировал без ошибок. Запустил.
Он ответил:
...
Рейтинг: 0 / 0
пути к базе данных
    #37407870
Allkay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нажал ОК!:
...
Рейтинг: 0 / 0
пути к базе данных
    #37407871
Allkay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нажал ОК!:

Нажал ОК!: - выкидывает из программы.
...
Рейтинг: 0 / 0
25 сообщений из 92, страница 1 из 4
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / пути к базе данных
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]