OpenTables в DE | |
---|---|
Elsif Сообщений: 14 Дата регистрации: 05.02.2020 |
ДД. Досталась на небольшой апгрейд старая программа. Таблицы свободные. В де куча всего, убирать не хочется. Путь к папке с таблицами прописан в таблице(d:\proga\db\, считываю его в переменную и добавляю 'имя_таблицы.dbf', эту переменную присваиваю de.table.cursorsource. На открытии формы, на строке de.opentables ругается что файл ' d:\proga\имя_таблицы.dbf' не найден
|
Re: OpenTables в DE | |
---|---|
ssa Сообщений: 13007 Откуда: Москва Дата регистрации: 23.03.2005 |
А нарисовать
------------------ Лень - это неосознанная мудрость. |
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 |
Re: OpenTables в DE | |
---|---|
Elsif Сообщений: 14 Дата регистрации: 05.02.2020 |
Автооткрытие отключено, set default завтра проверю (set patch сегодня пробовала -не помогло). Но в принципе, есть ещё нюанс: на этой же форме, в этот же ДЕ добавила три таблицы, но включенные в бд. Отличие лишь в том, что у них прописываю какая у них база и в курсорсурс пишу только имя таблицы - вот они нормально открываются, хотя лежат все таблицы в одной папке.
|
Re: OpenTables в DE | |
---|---|
Elsif Сообщений: 14 Дата регистрации: 05.02.2020 |
В общем, хз что это было. Сегодня всё запустилось
|
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 |
© 2000-2024 Fox Club  |