:: Visual Foxpro, Foxpro for DOS
OpenTables в DE
Elsif

Сообщений: 14
Дата регистрации: 05.02.2020
ДД. Досталась на небольшой апгрейд старая программа. Таблицы свободные. В де куча всего, убирать не хочется. Путь к папке с таблицами прописан в таблице(d:\proga\db\, считываю его в переменную и добавляю 'имя_таблицы.dbf', эту переменную присваиваю de.table.cursorsource. На открытии формы, на строке de.opentables ругается что файл ' d:\proga\имя_таблицы.dbf' не найден
Ratings: 0 negative/0 positive
Re: OpenTables в DE
ssa

Сообщений: 13007
Откуда: Москва
Дата регистрации: 23.03.2005
Elsif
ДД. Досталась на небольшой апгрейд старая программа. Таблицы свободные. В де куча всего, убирать не хочется. Путь к папке с таблицами прописан в таблице(d:\proga\db\, считываю его в переменную и добавляю 'имя_таблицы.dbf', эту переменную присваиваю de.table.cursorsource.
А нарисовать
set default to (<поле, в котором написано d:\proga\db\>)
и не заниматься всякими непотребностями религия не позволяет?


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: OpenTables в DE
Igor Korolyov
Автор

Сообщений: 34580
Дата регистрации: 28.05.2002
А это не факт что поможет - если в DE прописан полный путь, или хотя-бы часть пути а не только имя файла таблицы, то фокс полезет по этому пути, может найти не то что надо и открыть...

Стандартный подход - отменить автооткрытие, перебить пути (используя нужный путь из конфигурации приложения) и потом уже выполнять явно вызов OpenTables - такой код можно в Load класса формы написать и тем самым не заниматься отвратительным копи-пастом блоков кода.

Либо инъектить (есть разные способы, правда все они "хакерские") подобный код замены путей в DE.BeforeOpenTables - там ещё не поздно менять CursorSource даже если задано автооткрытие.

Либо написать утилитку для очистки всего кроме имени таблицы из всех объектов DE всех форм (для чего их придётся открывать как dbf, и менять содержимое поля Properties) и тогда действительно можно использовать вариант с SET DEFAULT/SET PATH. Вызов этой утилитки стоит прописать в хуки проекта, чтобы не забыть исполнить перед сборкой, и в exe/app не просочились случайно ненужные пути к таблицам, как на машине разработчика.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: OpenTables в DE
Elsif

Сообщений: 14
Дата регистрации: 05.02.2020
Автооткрытие отключено, set default завтра проверю (set patch сегодня пробовала -не помогло). Но в принципе, есть ещё нюанс: на этой же форме, в этот же ДЕ добавила три таблицы, но включенные в бд. Отличие лишь в том, что у них прописываю какая у них база и в курсорсурс пишу только имя таблицы - вот они нормально открываются, хотя лежат все таблицы в одной папке.
Ratings: 0 negative/0 positive
Re: OpenTables в DE
Elsif

Сообщений: 14
Дата регистрации: 05.02.2020
В общем, хз что это было. Сегодня всё запустилось
Ratings: 0 negative/0 positive
Re: OpenTables в DE
Igor Korolyov
Автор

Сообщений: 34580
Дата регистрации: 28.05.2002
Если работать чисто "визуально", из редактора форм, то там не видно что на самом деле прописал фокс в свойство - tablename.dbf, или ../data/tablename.dbf или вообще //server/share/app1/data/tablename.dbf
Только открыв scx как таблицу можно заглянуть в "настоящее" значение свойства, ну или перенося форму из папки в папку смотреть как меняется (если меняется) то что показывает окно свойств. При том фокс достаточно "умён" чтобы показывать правильный полный путь, используя значения SET DEFAULT/SET PATH для поиска файла таблицы. Проблема лишь в том что этот механизм поиска может сработать по другому на клиентской машине - а ты и знать не будешь, т.к. у тебя то на машине всё ок


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


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

On-line: 24 (Гостей: 24)

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