Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Path to data / 10 сообщений из 10, страница 1 из 1
26.01.2006, 08:48
    #33503927
Krushinskaya Olga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Path to data
Несколько раз перечитала по поиску все сообщения по моему вопросу. И так и не нашла ответа.

Все сделала правильно. Проект в папке opk\myprj\
далее в этой папке opk\myprj\prg
opk\myprj\forms
opk\myprj\menu
и т.п.

А база у меня может лежать вообще на сети или в другой папке, но не в папке opk\myprj\data

как мне делать привязку к базе, если в файле конфигурации я установила по умолчанию пути относительно директории моего проекта, т.е.
default='c:\devstudio\projects\opk\myprg'
PATH=forms;class;prg;menu;reports


С уважением, Ольга.
...
Рейтинг: 0 / 0
26.01.2006, 09:18
    #33503998
S866
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Path to data
я делаю текстовый конфигурационный файл который лежит вместе с exe- шником. в нем прописаны пути к данным, и др служебная информация.
далее в головном модуле программы до открытия таблиц читаю этот файл и
определяю пути поиска данных SET PATH to "путь к данным в сети"
а далее уже открываю таблицы.

конфигурационный файл текстовый - при изменении путей открываем блокнотом и меняем пути.
при этом разные экземпляры exe могут работать с разными конф. файлами - и как следствие с разными данными.

ТАМ КОНЕЧНО ЕСТЬ ЧЕГО ПЕРЕДЕЛАТЬ (см приложенный файл)
...
Рейтинг: 0 / 0
26.01.2006, 09:34
    #33504026
Krushinskaya Olga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Path to data
S866я делаю текстовый конфигурационный файл который лежит вместе с exe- шником. в нем прописаны пути к данным, и др служебная информация.
далее в головном модуле программы до открытия таблиц читаю этот файл и
определяю пути поиска данных SET PATH to "путь к данным в сети"
а далее уже открываю таблицы.

конфигурационный файл текстовый - при изменении путей открываем блокнотом и меняем пути.
при этом разные экземпляры exe могут работать с разными конф. файлами - и как следствие с разными данными.

ТАМ КОНЕЧНО ЕСТЬ ЧЕГО ПЕРЕДЕЛАТЬ (см приложенный файл)

Я так же сделала. Но в твоем конфигурационном файле идут пути относительно текущей директории. А у меня база вообще может лежит на другом диске и что тогда?
Открывать ее в таком виде: open datebase "путь к базе"
Но постоянно держать открытую ее не хочется. И как быть с DE. Или с удаленной базой DE вообще не использовать, а все базы или вьюшки подключать вручную?
...
Рейтинг: 0 / 0
26.01.2006, 10:27
    #33504178
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Path to data
Т.к. чувствуется задача файл-сервер, и я использую config.fpw:
1. на этапе проектирования конечно дирректория локальная моя
Path = Dbf;Report; и т.д. чтобы разработать проект
2. а когда уже имеет место exe-файл и его передаю user-ам, а каталог DBF кидаю на сервер и в config.fpw у меня такое
Path = \\Tec14-pro\EC\Pasports\Dbf
естественно доступ пользователей нужно организовать.
...
Рейтинг: 0 / 0
26.01.2006, 10:54
    #33504275
Krushinskaya Olga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Path to data
надо попробовать
...
Рейтинг: 0 / 0
26.01.2006, 13:06
    #33504832
S866
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Path to data
2 Krushinskaya Olga
посмотрите внимательно

IDDIRLOCALDATA: C:\SH621\LOCALDATA
IDDIRNETDATA: F:\USERS\SH621\DATA
IDDIRPROGS: F:\USERS\SH621
IDPROG: ОТГРУЗКА ГОТОВОЙ ПРОДУКЦИИ ПОТРЕБИТЕЛЯМ СЧЕТ ************
IDPATRON: **************
IDPATRONDOLGN: Генеральный ДИРЕКТОР
IDGLBUH: ***************
IDGLBUHDOLGN: ГЛАВНЫЙ БУХГАЛТЕР
IDDIRFORM: F:\USERS\SH621\forms
IDORGNAME: *************
IDORGINN: **************
IDORGKPP: *************
IDBUH: **************
IDBUHDOLGN: БУХГАЛТЕР
IDPATH: F:\USERS\SPRAV;F:\BANKS

где же здесь пути относительно текущей директории?
тут как раз грубое задание диска и каталогов.
видете там локальные данные на C: а сетевые на F:
на счет удаленных путей и вьюшек подсказать немогу т.к. неиспользовал
...
Рейтинг: 0 / 0
26.01.2006, 13:52
    #33505027
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Path to data
Предположим, структура каталогов имеет вид

C:\Project\Data
C:\Project\Forms
C:\Project\Class
C:\Project\Prg

Если в качестве директории по умолчанию выбрана директория C:\Project, то относительные пути (относительно текущей директории) указываются так:

SET PATH TO Data,Forms,Class,Prg

или в файле конфигурации (Config.fpw)

PATH=Data,Forms,Class,Prg

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

SET PATH TO Data,Forms,C:\Project\Class,Prg

Если путь доступа содержит пробелы, то его следует заключать в кавычки.

SET PATH TO "C:\Мои документы",Data,Forms,Class,Prg


Адрес к сетевому ресурсу предваряется двойным слешом:

\\ServerName\SharedFolder

Здесь ServerName - это сетевое имя того комьютера, к ресурсу которого пытаемся обратится

SharedFolder - это имя той папки, которая была дана в общий доступ на этом сервере

SET PATH TO "C:\Мои документы",Forms,Class,Prg,\\ServerName\SharedFolder

Если подключение к сетевому ресурсу "зафиксировали" в системе как дополнительный логический диск, например, под буквой Х, то и обращение будет как к диску

X:\

SET PATH TO "C:\Мои документы",Forms,Class,Prg,X:\


Относительная адресация файловой системы :

точка - переход в корневую директорию (в системе адресации FoxPro не поддерживается)
две точки - переход на одну директорию назад (в родительскую директорию)

Т.е. адресация вида

.\code

Будет воспринята как поиск директории code в текущей директории (точка будет проигнорирована)

Если же используется адресация

..\code

то это означает перейти в родительский каталог относительно текущего каталога, и в этом родительском каталоге искать папку code.

Т.е., например, если текущим каталогом является каталог C:\MyProjects\Project1, то адресация вида "..\code" означает поиск папки по адресу

C:\MyProjects\code

SET PATH ..\code

Проверить, какой же реально получиться путь доступа при использовании того или иного пути доступа можно так:

?FullPath("..\code")

Функция FullPath() физически не именяет текущую директорию, а только формирует синтаксическую конструкцию пути доступа при этом сам факт физического существования такой директории никакой роли не играет. Поэтому, желательно проверить себя при помощи функции Directory()

?Directory(FullPath("..\code"))


Проблема при использовании относительной адресации в том, что надо очень тщательно следить за тем, какой же каталог является текущим в данный момент. Дело в том, что есть ряд команд и функций, которые могут самостоятельно изменить текущий каталог. Кажется, это могут сделать функции типа GetFile() и GetDir().

Определить, какая же директория в данный момент является текущей можно используя команду

?FullPath("")

Здесь две пустые кавычки обязательны.
...
Рейтинг: 0 / 0
27.01.2006, 04:20
    #33506369
vlas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Path to data
Еще один способ чтения ini файлов:

*регистрация апи
DECLARE INTEGER GetPrivateProfileString IN Win32API ;
String cSection, String cKey, String cDefault, String @cBuffer, ;
Integer nBufferSize, String cINIFile

konf_path=SYS(5)+SYS(2003)+'\название.ini'

IF !FILE(konf_path)
*при запуске проекта
konf_path='c:\temp\название.ini'
IF !FILE(konf_path)
MESSAGEBOX('не найден конфигурационный файл',16,'Ошибка')
return
ENDIF

ENDIF


cBuffer = SPACE(1024)
nBufferLen = GetPrivateProfileString('DataBase','название_параметра','',@cBuffer,1024,konf_path)
IF nBufferLen = 0

=MESSAGEBOX('нет параметра',16,'Ошибка')
RETURN
ENDIF
название_параметра = LEFT(cBuffer,nBufferLen)

***************
ini файл выглядит так:
[database]
название_параметра=C:\windows\
...
Рейтинг: 0 / 0
27.01.2006, 08:59
    #33506520
Krushinskaya Olga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Path to data
Cпасибо огромное. теперь все ясно
...
Рейтинг: 0 / 0
27.01.2006, 09:00
    #33506524
Krushinskaya Olga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Path to data
S8662 Krushinskaya Olga
посмотрите внимательно

IDDIRLOCALDATA: C:\SH621\LOCALDATA
IDDIRNETDATA: F:\USERS\SH621\DATA
IDDIRPROGS: F:\USERS\SH621
IDPROG: ОТГРУЗКА ГОТОВОЙ ПРОДУКЦИИ ПОТРЕБИТЕЛЯМ СЧЕТ ************
IDPATRON: **************
IDPATRONDOLGN: Генеральный ДИРЕКТОР
IDGLBUH: ***************
IDGLBUHDOLGN: ГЛАВНЫЙ БУХГАЛТЕР
IDDIRFORM: F:\USERS\SH621\forms
IDORGNAME: *************
IDORGINN: **************
IDORGKPP: *************
IDBUH: **************
IDBUHDOLGN: БУХГАЛТЕР
IDPATH: F:\USERS\SPRAV;F:\BANKS

где же здесь пути относительно текущей директории?
тут как раз грубое задание диска и каталогов.
видете там локальные данные на C: а сетевые на F:
на счет удаленных путей и вьюшек подсказать немогу т.к. неиспользовал
Извините, я не туда посмотрела. Да вижу. Хороший пример.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Path to data / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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