:: Visual Foxpro, Foxpro for DOS
Узнать путь файла в DBC
Коматозник
Уважаемые коллеги ! Нужно узнать полный путь файла в ДБЦ. При выполнении ЕХЕ модуля. Как ? В ДБЦ прописан файл из какого-то каталога, которого уже нет, когда делаю РЕМОВЕ ТАБЛЕ _НАМЕ_, программа пишет, что такого файла нет. Заранее всем спасибо.
Ratings: 0 negative/0 positive
Re: Узнать путь файла в DBC
B3ersn3V
? FullPath(DBGETPROP("myTable","TABLE","Path"),FullPath("disk:\path\myDatabase.dbc"))
Ratings: 0 negative/0 positive
Re: Узнать путь файла в DBC
Naomi

Сообщений: 1796
Дата регистрации: 09.10.2003
?dbc()
Ratings: 0 negative/0 positive
Re: Узнать путь файла в DBC
Коматозник
Все это, конечно, хорошо, спасибо, но проблема остается, вот, смотрите, есть каталог
С:\С_12, в нем ЕЕ_0012.DBC, в ней должен быть файл DPP.DBF, и он есть, но где-то путь прописан следующий : С:\_1\BUFF, а у меня и каталога такого уже нет, хотя путь должен быть C:\C_12, когда я в программе делаю REMOVE TABLE DPP, она пишет, что такого файла или каталога нету, ну что-то в этом роде. Когда я открываю в VFP базу и делаю DISPLAY TABLES, то все видно, какой файл и с каким путем включен в ДБЦ. Вот я и хочу для каждого файла в ДБЦ получить его полный путь, чтобы принимать дальнейшие решения. Короче говоря, нужна функция, которая работает аналогично DISPLAY TABLES, и выдает некий массив, с которым можно программно работать. Заранее всем признателен.
Ratings: 0 negative/0 positive
Re: Узнать путь файла в DBC
Naomi

Сообщений: 1796
Дата регистрации: 09.10.2003
Do you mean ADBObjects()? And then loop through array and check DBF()?
Ratings: 0 negative/0 positive
Re: Узнать путь файла в DBC
Владимир Максимов

Сообщений: 14095
Откуда: Москва
Дата регистрации: 02.09.2000
Не, такое не получиться.

Дело в том, что в файле DBC храниться относительный путь к включенным в него таблицам. Относительно самого файла DBC. Т.е. там просто нет абсолютного пути вроде С:\_1\BUFF.

Предположим, что твой файл DBC находится в папке С:\С_12\ЕЕ_0012.DBC В эту базу данных была включена некая таблица из папки С:\_1\BUFF.

Так вот, в самом контейнере будет прописан такой путь доступа

..\_1\BUFF

Это то, что вернет функция DBGETPROP("myTable","TABLE","Path"). Используя функцию FullPath() как показал B3ersn3V можно получить полный путь доступа.

Ну, а полный список объектов, включенных в DBC можно получить через ADBObjects() и далее крутить в цикле для уточнения реквизитов таблиц.
Ratings: 0 negative/0 positive
Re: Узнать путь файла в DBC
Igor Korolyov
Автор

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi Владимир!

Может и полный путь быть - например если таблица и dbc изначально были на разных дисках
P.S. Никогда не понимал в чём глубокий смысл распихивать dbc и его таблицы по разным папкам.

2 Коматозник
А VALIDATE DATABASE RECOVER не спасёт? Учитывая конечно что это разовая операция, и не из программы регулярно выполняемая а тобой лично из среды!




------------------
WBR, Igor
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 23 Владимир Максимов  (Гостей: 22)

© 2000-2024 Fox Club 
Яндекс.Метрика