powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / пути к таблицам
39 сообщений из 39, показаны все 2 страниц
пути к таблицам
    #37971430
Нужно в файл MUMC.dbf добавить путь к таблицам Tab1 и Tab2 и в программе читать путь к таблицам с этого файла. Как это сделать?
...
Рейтинг: 0 / 0
пути к таблицам
    #37971498
miv32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что, поиск по форуму отменили?

SET PATH TO и через запятую перечень каталогов, где будут искаться файлы.
...
Рейтинг: 0 / 0
пути к таблицам
    #37971514
miv32, я так писала SET PATH TO mumc.dbf. этот файл т.е. mumc.dbf находится в той же папке что и проект. И еще я в mumc.dbf написала путь к таблицам лежащим на сервере так >H:\DBF\pacient.dbf,obsled.dbf если неправильно указала исправьте пожалуйста. в первый раз сталкиваюсь с путями и не понимаю как писать
...
Рейтинг: 0 / 0
пути к таблицам
    #37971519
в mumc.dbf в 9-ой строке написала путь к таблицам pacient и obsled
...
Рейтинг: 0 / 0
пути к таблицам
    #37971559
miv32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
:) Сам выполняемый exe лежит, я полагаю, в каком-то каталоге. Верно? Допустим каталог называется MyProg.
В MyProg обычно, чтобы не валить все в одну кучу, есть еще подкаталоги: DBF (где храняться базы), SCREENS (для форм), PRG (для разных *.prg) и т.д.

Всегда должен быть стартовый файл. Обычно это некий *.prg

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

SET PATH TO DBF,SCREENS,PRG относительно места, где лежит exe.

Если exe - шник запускается с локальных машин по сетке, то хранить путь в файле незачем.
Если базы храняться на одном компе, а на каждом лежит ехе, то тогда да, придется запоминать.

Полный путь к вашему exe: JUSTPATH(SYS(16,0))
...
Рейтинг: 0 / 0
пути к таблицам
    #37971578
miv32, у меня есть папка с проектом с проектом и со всеми файлами относящимися к нему и с таблицой mumc.dbf в этом файле mumc.dbf я прописала путь к таблицам pacient и obsled которые лежат на сервере так: >H:\DBF\pacient.dbf,obsled.dbf я не знаю правильно ли я написала этот путь и потом мне нужно в программе вместо use H:\dbf\pacient.dbf читать путь из файла mumc.dbf. я просто не знаю как это делается.

написала
SET PATH TO _VFP.DefaultFilePath
USE mumc.dbf IN 9
т.к. 9-я строчка в mumc.dbf содержит путь но не находит таблицы. Напишите как мне в mumc.dbf прописать путь к тем таблицам pacient и obsled и как потом из программы читать этот путь. заранее спасибо
...
Рейтинг: 0 / 0
пути к таблицам
    #37971601
miv32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уфф, тяжело в деревне без нагана. Еще раз говорю. Зачем вам прописывать путь?

Если дана команда SET PATH TO QQQQ то ваши pacient.dbf,obsled.dbf фокс САМ найдет, при условии, что они лежат в QQQQ.

И чтобы pacient.dbf,obsled.dbf использовать, даете команды

USE pacient.dbf IN 0
USE obsled.dbf IN 0

Экзешник откуда запускается? С сервера?
...
Рейтинг: 0 / 0
пути к таблицам
    #37971612
miv32, мне сказали именно так сделать. в файле mumc.dbf хранятся все пути ко всем таблицам.
...
Рейтинг: 0 / 0
пути к таблицам
    #37971624
miv32, нет не с сервера. сказали чтобы пути не были жестко указаны в программе вынести путь к этим таблицам в этот файл а в программе читать этот путь.
...
Рейтинг: 0 / 0
пути к таблицам
    #37971699
miv32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тогда пользуйтесь командой JUSTPATH(SYS(16,0)).
Она вернет полный путь, НО путь будет относительный, т.к. по сети диск сервера может быть подключен у каждого юзера под разными буквами. Спрашивается, какой путь вы хотите хранить? Придется для каждого юзера хранить свой путь. Одни танцы с бубнами. Так не пишут.
...
Рейтинг: 0 / 0
пути к таблицам
    #37971712
miv32, А если для всех юзеров сервер этот диск H то как написать? Допустим у всех серверный диск это H и на сервере в папке xxx есть таблица mumc.dbf в этой таблице 9-я запись хранит путь H:\dbf\pacient.dbf,obsled.dbf если нетрудно напишите небольшой код, чтобы из программы читать этот путь. Я не поняла как отсюда JUSTPATH(SYS(16,0) эта команда ищет этот путь
...
Рейтинг: 0 / 0
пути к таблицам
    #37971744
miv32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тогда в лоб и пишите H:\dbf\pacient.dbf

считываете значение lcName = "H:\dbf\pacient.dbf"

А потом USE (lcName) IN 0

Но H:\DBF\pacient.dbf,obsled.dbf не прокатит
...
Рейтинг: 0 / 0
пути к таблицам
    #37971779
miv32, Вы меня не так поняли в программе у меня и так путь к таблицам указан так use h:\dbf\pacient и т.д. А мне нужно этот путь h:\dbf\pacient записать в таблице mumc.dbf и потом оттуда уже считывать в программе
...
Рейтинг: 0 / 0
пути к таблицам
    #37971850
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кристинка89,

Насколько я понял, вы хотите файл MUMC.dbf использовать в качестве "хранителя настроек".
Подскажу довольно часто используемое решение: у вас есть какая-то форма, где вызывается процедура
для изменения настроек. Файл, а, точнее, таблица MUMC.dbf должна иметь два поля: <имя параметра> и <значение параметра>.
Писать : открываете таблицу, находите нужную запись и, например, REPLACE <значение параметра> WITH <значение тексбокса формы>.
Читать : открываете таблицу, находите нужную запись <переменная>=ALLT(<значение параметра>). Или через SCATTER, как больше нравится.
А потом открыть рабочую таблицу так: USE <переменная>+'\<имя таблицы>.dbf' IN 0 ......

Немного сумбурно, но... В книгах пишут более подробно.
...
Рейтинг: 0 / 0
пути к таблицам
    #37971852
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кристинка89, дело в том, что вы неправильно ставите задачу. И кто именно вам "сказал, что нужно именно так прописать"? Андрей?

Давайте посмотрим (что вам и пытаются объяснить):
1) Можно сделать именно то, что вы хотите. Но для этого нам нужен ваш файл MUMC.DBF, поскольку мы-то ведь не знаем, какова его структура и как там хранится информация.
2) Можно сделать немного по-другому. А именно - не прописывать некие конкретные пути к конкретным таблицам в некоей, опять же, конкретной таблице (ибо, как было правильно замечено, никто уже не пишет ПО в предположении, что файлы будут находиться в каком-то конкретном расположении на диске), а задать пути поиска. То есть получится, что Вы , как разработчик, знаете, что таблицы pacient.dbf и obsled.dbf находятся в одном и том же каталоге, который может быть либо задан пользователем, либо "вычислен" самой программой, либо считан из какого-либо источника (файлы конфигурации, запросы к СУБД, etc), либо... Обычно, самый простой путь - это задание "путей поиска", по которым FoxPro автоматически выполняет поиск файлов (например, при открытии таблиц). Как вам и сказали, это либо команда SET PATH TO (некий путь) ; либо строчка в файле config.fp вида path=H:\DBF

Впрочем, что мы тут бьемся судя по вашему
Кристинка89написала
SET PATH TO _VFP.DefaultFilePath
USE mumc.dbf IN 9
т.к. 9-я строчка в mumc.dbf содержит путь но не находит таблицы. Вы вообще не знаете FOX (особенно мне нравится перл " USE ... IN 9 т.к. 9-я строчка в содержит путь "). Так-то мы в курсе, что вы - двое студентов, которых куда-то там наняли, которые FOXа до этого в глаза не видели (ваше "универовское" знакомство с ним, как я понимаю - это "Вы знаете, товарищи студенты, что есть такой язык и СУБД - ФоксПро. А теперь перейдем к изучению Акцесс...". В сообщениях Андрею уже несколько раз повторено - "садитесь и читайте книги по FoxPro, учитесь на примерах из них, и только затем уже справшивайте". Поскольку сложного-то в изучении ничего нет (особенно, если вы всё же ещё не разучились учиться), на примерах и книгах можно всё основное понять... для программиста, сносно владеющего хотя бы одним ЯП - недели две-три...
...
Рейтинг: 0 / 0
пути к таблицам
    #37971871
AndreTM, мне нужно именно так как я говорю. Это не андрей сказал а шеф. Вот файл mums.dbf
...
Рейтинг: 0 / 0
пути к таблицам
    #37971898
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А предыдущие записи в этой таблице - это уже те пути, что ваша "программа" использует в работе? И при этом "умеет" находить нужные таблицы по этим путям??
Тогда вам придется изучить уже имеющийся код проекта на предмет того, как же реализована работа с этой таблицей. Поскольку, имею я сильное подозрение, что завязано там все на глобальные переменные для путей, которые считываются по номеру записи в таблице... охр..ть.
Соответственно, если вы желаете "вписаться" в имеющуюся логику, сразу возникает следующий вопрос: а pacient.dbf и obsled.dbf - это вами же созданные новые таблички, ранее в проекте не имевшиеся? Иначе кто вам запрещает их сразу поместить в это самое место - H:\DBF\ ?
...
Рейтинг: 0 / 0
пути к таблицам
    #37971900
AndreTM, Нет предыдущие пути это пути для других проектов которых у меня нету
...
Рейтинг: 0 / 0
пути к таблицам
    #37971906
AndreTM, Блиин вот вы даете Эти таблицы размещены на сервере в H:\DBF в программе у меня жестко пути прописаны все работает. Но сказали эти пути записать в файл mums.dbf а в программе оттуда выбирать этот путь. Если бы так не сказали сделать я бы не парилась т.к. и без этого работает. Но нужно именно так сделать
...
Рейтинг: 0 / 0
пути к таблицам
    #37971915
на другом форуме написали такой код:

Use ('Ваш_путь_к_mumc.dbf\'+mumc.dbf) IN 0 SHARED
SELECT mumc

LOCATE FOR mumc.tbl_name=pacient
USE(mumc.tbl_path+'\pacient.dbf') IN 0 SHARED


эту строку USE(mumc.tbl_path+'\pacient.dbf') IN 0 SHARED не понимаю. Остальное вроде понятно
...
Рейтинг: 0 / 0
пути к таблицам
    #37971919
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так и вопрос-то я вам задаю вполне конкретный:
- вот есть у вас файл MUMC.DBF
- вот создали в нем новую запись, содержащую нужный вам путь
Как вы затем определите (если у вас в этом файле несколько записей) что какой-то конкретный путь - именно нужный вам? По каким признакам?

Кстати, конкретно такой путь ("H:\DBF\") уже есть в этой таблице, в записи #2. Если исходить из этого, то можно действовать таким примерно образом:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
* где-то в начале кода
USE mumc.dbf IN 0
GO 2 * это порядковый номер записи в таблице
gcMyPathDBF=CHRTRAN(namm,'>','')
USE

* там, где вам нужно открыть таблицы
USE (gcMyPathDBF+'pacient') IN 0 ALIAS pacient
* и работаем с таблицей

* там, где нужно использовать SQL
SELECT * FROM (gcMyPathDBF+'obsled')

* и т.д.
...
Рейтинг: 0 / 0
пути к таблицам
    #37971923
AndreTM, и везде где есть в выборках эти таблицы так писать?
...
Рейтинг: 0 / 0
пути к таблицам
    #37971924
Кристинка89, в этой строке пишет gcMyPathDBF=CHRTRAN(namm,'>','') Variable Namm не найден
...
Рейтинг: 0 / 0
пути к таблицам
    #37971926
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"На другом форуме" видели структуру вашего файла MUMC.DBF? Или вы им послали другой файл (по сравнению с выложенным здесь)?

"Эту строку ... не понимаю" - я уже про вас ранее высказался, не хочу повторяться. Если Вы не понимаете этого написанного , то вам еще рано даже приближаться к программированию конкретной задачи (тем более, к "оптимизации" уже имеющейся), необходимо, вообще-то, сначала изучить тот язык, на котором вам надо решать задачу...
"Остальное вроде понятно" - не верю ни одному слову. Ибо, например
Код: sql
1.
LOCATE FOR mumc.tbl_name=pacient

непонятно мне, поскольку в mumc.dbf я что-то не обнаружил поля tbl_name (да и tbl_path никакой не наблюдается...)

Вы всё еще думаете, что работа с СУБД хоть каким-то образом похожа на "раскидывание кнопочек по формочкам" или "рисование табличек"?
...
Рейтинг: 0 / 0
пути к таблицам
    #37971930
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кристинка89Кристинка89, в этой строке пишет gcMyPathDBF=CHRTRAN(namm,'>','') Variable Namm не найденТо есть Вы утверждаете, что запустив код (разом, в виде программы)
Код: sql
1.
2.
3.
4.
USE mumc.dbf IN 0
GO 2
gcMyPathDBF=CHRTRAN(namm,'>','')
USE

вы получили ошибку??
...
Рейтинг: 0 / 0
пути к таблицам
    #37971933
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кристинка89 , не тратьте лучше цветы своей селезёнки, тем более, сидя дома...
Андрею же уже сказали (вы, кстати, за его постами и ответами на них наблюдаете?), что надо просто сесть и почитать книжки. Вот и займитесь...
...
Рейтинг: 0 / 0
пути к таблицам
    #37971936
AndreTM, Да ошибка variable namm not found

автор*!* USE mumc.dbf IN 0
*!* GO 2 && это порядковый номер записи в таблице
*!* gcMyPathDBF=CHRTRAN(namm,'>','')
*!* USE

*!* * там, где вам нужно открыть таблицы
*!* USE (gcMyPathDBF+'pacient') IN 0 ALIAS pacient
*!* * и работаем с таблицей
вот код
...
Рейтинг: 0 / 0
пути к таблицам
    #37971939
AndreTM, понятно же что делает функция я ее переделала просто чтобы она находила слово pacient в поле. как я поняла тот кто писал это андрею имел ввиду это. может и ошибаюсь
...
Рейтинг: 0 / 0
пути к таблицам
    #37971945
AndreTM, в общем не надо отвечать сама разберусь.. вы все шаблоны даете вместо реального небольшого примера. В шаблонах я например не понимаю ваши замудренные переменные и прочие подстановки.
...
Рейтинг: 0 / 0
пути к таблицам
    #37971946
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что Вы переделали?? Какой "pacient в поле"?
Вы храните, вообще-то пути . Если же вы собираетесь хранить "имя файла с полным путём" (как, например, у вас в 9 и 10 записях) - то и преобразование понадобится другое (просто "отрезать" первый символ ">"), либо не понадобится вовсе (если вы не будете этот самый ">" вообще в поле прописывать - оно вам там зачем надо-то?).
С другой стороны, вы собираетесь в таблице MUMC перечилять все свои используемые таблицы ? Зачем? Вас же просили записать путь к таблицам , а не таблицы с путями , вообще-то, как я понял...
...
Рейтинг: 0 / 0
пути к таблицам
    #37971953
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кристинка89AndreTM, в общем не надо отвечать сама разберусь.. вы все шаблоны даете вместо реального небольшого примера. В шаблонах я например не понимаю ваши замудренные переменные и прочие подстановки.
Спасибо, посмеялсо от души... Не в обиду:
from Shoker.Pro "...получайте же эти знания, иначе зачем учиться на такой специальности. Можно податься в строители, слесари, швеи, водители. Там никто программирование учить не заставляет. А если пришли учиться именно на такую специальность – будьте любезны соответствовать. Специалисты знают то что они знают потому, что хотели получить эти знания и мы все будем очень сильно расстроены, если из-за тех, кто не хочет учиться сейчас, мы получим в будущем очередной Чернобыль, СШГЭС, падение самолетов и т.п..."
...
Рейтинг: 0 / 0
пути к таблицам
    #37971979
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM Как вам и сказали, это либо команда SET PATH TO (некий путь) ; либо строчка в файле config.fp вида path=H:\DBF
Я бы посоветовал такие советы не советовать. Да и самим никогда не использовать. Это такие же грабли как и макроподстановка.
Случайно заброшенная в папку программы одноименная DBFка в лучшем случае вызовет мистические ошибки, в худшем - нарушение данных в базе.
SET PATH или path= уместно на этапе разработки, когда формы/классы/отчеты/программные модули раскиданы по подпапкам и в работе будут собраны в один EXE. EXE - это тоже самое, но без подпапок. В рабочем состоянии для внешних файлов - только полные пути.

Топикстартерам - читать книги, там все основы разжеваны, тут не курсы для чайников. После такой доработки проги для врачей и до врачебных ошибок недалеко.
...
Рейтинг: 0 / 0
пути к таблицам
    #37971995
miv32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так а в чем проблема то? Я смотрю, что файлики в табличке есть.
Их заюзать надо?

*Открываем вашу табличку*
IF !USED("mumc")
USE mumc IN 0
ENDIF

LOCAL ARRAY aTableName(1)

*Собственно выборка*
SELECT ALLTRIM(namm) FROM mumc WHERE LOWER(namm) like '%obsled.dbf%' OR LOWER(namm) like '%pacient.dbf%' INTO ARRAY aTableName


IF _TALLY = 0
=MESSAGEBOX("Ничего не найдено",0+16,"Ошибка")
RETURN .f.
ENDIF

*Чего-то нашли*
LOCAL lcPath,lcPathErr
lcPathErr = ""

FOR i=1 TO ALEN(aTableName,1)
*Символ '>' не нужен, я полагаю*
lcPath = ALLTRIM(SUBSTR(aTableName(i),2,100))
IF FILE(lcPath) && Файл есть по указанному пути
USE (lcPath) IN 0 && Юзаем
ELSE
lcPathErr = lcPathErr + lcPath + CHR(13) && Файлы не найдены по указанным путям
ENDIF
ENDFOR

IF LEN(lcPathErr) > 0
=MESSAGEBOX("Не все спокойно в Датском королевстве! Не найдены:"+CHR(13)+lcPathErr,0+16,"Ошибка")
ENDIF
RELEASE aTableName
...
Рейтинг: 0 / 0
пути к таблицам
    #37972113
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T , я вроде не "советовал так делать", просто указал на то, что такое возможно и уже упоминалось. Совет был другой, аналогичный вашему

miv32 , человека вгоняет в ступор даже это
авторэту строку
Код: sql
1.
USE(mumc.tbl_path+'\pacient.dbf') IN 0 SHARED

не понимаю.так что думаю, ваш пример будет восприниматься как китайская грамота с подстрочным переводом на английском - для обитателя острова Пасхи...
...
Рейтинг: 0 / 0
пути к таблицам
    #37972118
у кого-нибудь есть вообще исходник такого примера который мне нужен. я бы разобралась в этом примере, запомнила
...
Рейтинг: 0 / 0
пути к таблицам
    #37972124
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОффНе, народ... Не поленюсь, сохраню треды с участием этих ребят.
Похоже, достойные участники Специальной олимпиады.
...
Рейтинг: 0 / 0
пути к таблицам
    #37972311
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кристинка89Вы меня не так поняли в программе у меня и так путь к таблицам указан так use h:\dbf\pacient и т.д.
А мне нужно этот путь h:\dbf\pacient записать в таблице mumc.dbf и потом оттуда уже считывать в программе Кристинка89Это не андрей сказал а шефА кто шеф? Главврач? Или начальник отделения? НЕ ВЕРЮ! Это все-таки курсач/лаба.

Кристинка89у кого-нибудь есть вообще исходник такого примера который мне нужен. я бы разобралась в этом примере, запомнилаНапишите на форум "Работа", вам за неделю (максимум) сделают.
...
Рейтинг: 0 / 0
пути к таблицам
    #37972320
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
оффAndreTMэтих ребят
"эти ребята" - это Кристинка89 и кто ещё?
...
Рейтинг: 0 / 0
пути к таблицам
    #37972344
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
оффtanglirAndreTMэтих ребят
"эти ребята" - это Кристинка89 и кто ещё?И Андрей8989 .
...
Рейтинг: 0 / 0
39 сообщений из 39, показаны все 2 страниц
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / пути к таблицам
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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