|
пути к базе данных
|
|||
---|---|---|---|
#18+
IgorNGА зачем они в DE? Да еще, наверняка с AutoOpen. Нужно делать все руками - закрывать и открывать. Тогда и весь процесс будет под контролем. Это один из главных аргументов против использования DE. Именно желание всегда и все контролировать. Для большинства задач в этом нет никакой необходимости. Хотя, конечно, есть исключения. Именно по причине желания все контролировать в данном случае и "огребли" кучу проблем. Я настойчиво твержу, что SET PATH в коде использовать НЕ НАДО, тем не менее, этот совет игнорируется и по прежнему лепят проблему на проблеме. Ну, успехов в борьбе с глюками... IgorNG Я точно не помню, но по-моему, если БД запихиваешь в DE, которая лежит в определенном месте, так в этом месте и будет пытаться открыть ее. Если таблица включена в контейнер базы данных, то пути доступа к таблицам прописаны в собственно контейнере базы данных. И открываются после открытия этого самого контейнера. Если "вскрыть" файл формы с DE, то в свойствах курсора будет написано нечто вроде Код: plaintext 1. 2. 3. 4.
Т.е. ссылка только и исключительно через DBC. Как следствие, если контейнер открыт и сделан текущим в начале приложения, то именно его таблицы и будут открываться при открытии форм с DE. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2011, 12:22 |
|
пути к базе данных
|
|||
---|---|---|---|
#18+
ВладимирМIgorNGА зачем они в DE? Да еще, наверняка с AutoOpen. Нужно делать все руками - закрывать и открывать. Тогда и весь процесс будет под контролем. Это один из главных аргументов против использования DE. Именно желание всегда и все контролировать. Для большинства задач в этом нет никакой необходимости. Хотя, конечно, есть исключения. Именно по причине желания все контролировать в данном случае и "огребли" кучу проблем. Я настойчиво твержу, что SET PATH в коде использовать НЕ НАДО, тем не менее, этот совет игнорируется и по прежнему лепят проблему на проблеме. Ну, успехов в борьбе с глюками... IgorNG Я точно не помню, но по-моему, если БД запихиваешь в DE, которая лежит в определенном месте, так в этом месте и будет пытаться открыть ее. Если таблица включена в контейнер базы данных, то пути доступа к таблицам прописаны в собственно контейнере базы данных. И открываются после открытия этого самого контейнера. Если "вскрыть" файл формы с DE, то в свойствах курсора будет написано нечто вроде Код: plaintext 1. 2. 3. 4.
Т.е. ссылка только и исключительно через DBC. Как следствие, если контейнер открыт и сделан текущим в начале приложения, то именно его таблицы и будут открываться при открытии форм с DE. Давно не пользовался DE, вот и забыл. Кстати, и Wizardфми тоже не пользуюсь - только на первом этапе знакомства с Visual FoxPro ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2011, 12:31 |
|
пути к базе данных
|
|||
---|---|---|---|
#18+
В коде удалил “PATH”. Только в файле config.fpw прописаны пути к директориям. Компиляция бес ошибок. Запуск задачи: Сопровождение ИК → Отметка о выполнении = должна открыться форма, Но в место этого Ошибка. Проект изначально создавался через Проект Менеджер, со всеми директориями. Я “жестоко” перенес директорию DATA и создал на диск D:\. Формы создавались “New Form” ? открывался DE добавлялись таблицы, представления и просто курсоры (на форме создавались компоненты а за частую просто перетаскивались из DE). В файлах с DE прописано SET DELETED ON … DODEFAULT() … SELECT AUTOR … CREATE CURSOR НО ни где не прописано открытие БД, открытие ТАБЛИЦ. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2011, 14:32 |
|
пути к базе данных
|
|||
---|---|---|---|
#18+
СОРИ не та картинка ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2011, 14:34 |
|
пути к базе данных
|
|||
---|---|---|---|
#18+
Allkay, из картинки ничего не понятно ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2011, 14:43 |
|
пути к базе данных
|
|||
---|---|---|---|
#18+
Первая картинка ЭТО какая ошибка вылетает Вторая картинка Какое приложение запускаю(Типа: ФАЙЛ→Сахронить как → Вылетает форма) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2011, 14:55 |
|
пути к базе данных
|
|||
---|---|---|---|
#18+
Провел эксперимент: 1. Создал FORM 2. Добавил в DE таблицу, из БД. (БД -- находится на диске D:\DATABASE\DATA) 3. Перетащил БД на FORM 4. Ни чего не прописывал, ни на FORM ни в DE 5. Добавил FORM в меню 6. С компилировал проект 7. Запустил вуаля – работает (но только эта форма!?) К стати в VFP для что бы редактировать форму нужно копировать директорию DATA в папку с проектом, а иначе ОШИБКА «БД не существует» Хотя в Project Manager БД добавлена. Мало того что добавлена да и еще и открыта (можно просматривать таблицы). А мною созданную форму можно редактировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2011, 15:36 |
|
пути к базе данных
|
|||
---|---|---|---|
#18+
Allkay, так вот что не заниматься копирование папок, я и говорил, что нужно обходиться без DE, а открывать все что нужно ручками OPEN DATABASE ..... USE <Table> IN 0 SHARED ALIAS ... и .д. Весь процесс под контролем. А когда БД в DE, а потом перетащил папку с базой в другое место и все - ошибка. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2011, 15:48 |
|
пути к базе данных
|
|||
---|---|---|---|
#18+
А VFP где ни будь запоминает откуда я в DE добавлял таблицы? Я еще думал что то что я перетаскиваю в DE можно настроить. А если я буду прописывать OPEN DATABASE ..... USE <Table> IN 0 SHARED ALIAS ... в ручную, то что тогда config.fpw не нужен? или нужен? И OPEN DATABASE ..... и USE <Table> IN 0 SHARED ALIAS ... прописывать путь полностью? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2011, 16:01 |
|
пути к базе данных
|
|||
---|---|---|---|
#18+
Allkay, Когда добавляешь в DE выводится диалоговое окно, в котором укабываешь БД. Естественно, что запоминается именно эта база данных. Если открываешь ручками, а в DE ничего нет, то будет искаться по путям, прописанным в конфиге, о чем собственно тебе и говорят все уже который день. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2011, 16:14 |
|
пути к базе данных
|
|||
---|---|---|---|
#18+
Так получается, что в моем проекте нужно удалять таблицы из DE и в коде прописывать ручками пути? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2011, 16:41 |
|
пути к базе данных
|
|||
---|---|---|---|
#18+
Allkay, Из DE удалять. Зачем пути прописывать ручками? Путь в конфиге укажешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2011, 16:44 |
|
пути к базе данных
|
|||
---|---|---|---|
#18+
В смысле не пути прописывать а открывать в начале!? и БД и Таблицы? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2011, 17:04 |
|
пути к базе данных
|
|||
---|---|---|---|
#18+
ВладимирМ Извините за повторение (чуть выше мы с Игорем осуждали этот вопрос) Очень важно ваше мнение Вы сказали: Код: plaintext 1. 2.
Так что делать с Проектом удалять таблицы из DE ? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2011, 17:29 |
|
пути к базе данных
|
|||
---|---|---|---|
#18+
Allkay, Вообще-то DE в форме, а не в проекте. По-моему у вас путаница с понятиями. В проекте у вас БД ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2011, 17:46 |
|
пути к базе данных
|
|||
---|---|---|---|
#18+
Сколько лет работаю с FoxPro, ни разу не возникали проблемы с путями. Вообще не понимаю, почему почти у всех начинающих они появляются. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2011, 18:16 |
|
пути к базе данных
|
|||
---|---|---|---|
#18+
Ffffffffffffffff, Так у него бы все работало бы, если б не задумал базы в другое место кинуть. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2011, 18:44 |
|
пути к базе данных
|
|||
---|---|---|---|
#18+
Обычная ситуация. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2011, 18:53 |
|
пути к базе данных
|
|||
---|---|---|---|
#18+
Возможны разные стратегии настройки путей доступа. Но если уж Вы выбрали какую-то из них, то ее и следует придерживаться. Вы же смешали в кучу несколько стратегий и в результате, получили "кашу". Та стратегия, про которую я говорю решается при выполнении следующих условий 1. Никакие явные (прописанные в коде) указания на файл не должны иметь путей доступа. Только и исключительно имя файла 2. Настроек SET PATH в коде быть не должно. Пути доступа прописываются исключительно в файле конфигурации 3. Нужны два файла конфигурации . Один для создания и отладки приложения, другой для готового EXE Если Вы собираетесь придерживаться этой стратегии, то у Вас 2 проблемы Проблема 1 . Вы включили указание на директорию где-то в своих настройках имени базы данных this.cDataBase = "DATA\BDUASKI" Вот именно это явное указание путей доступа и "ломало" весь алгоритм поиска. Естесственно, Вам пришлось "мудрить" и удалять ссылку на папку DATA из настроек SET PATH, чтобы при "сложении" с указанным путем получить нужную директорию. Необходимо сделать настройку БЕЗ указания пути доступа this.cDataBase = "BDUASKI.dbc" Проблема 2 . Судя по описанию, на этапе разработки Вы не используете файл конфигурации. Как следствие, при удалении настроек SET PATH из программы Вы вобще теряете все пути доступа и на этапе отладки приложение отказывалось работать. Для справки : DE запоминает только относительный путь доступа к контейнеру базы данных (к файлу DBC). Относительно той директории, которая была текущей на момент добавления таблицы в DE. Путь доступа непосредственно к таблицам там вообще не хранится. Это уже контейнер базы данных занимается поиском таблиц. Именно поэтому, предварительное открытие только собственно контейнера базы данных в стартовой программе, как правило, снимает вопрос поиска таблиц вообще. Контейнер уже открыт и где какая таблица находится он сам знает. PS: Отказ от использования DE и "ручное" открытие/закрытие таблиц, в подавляющем большинстве случаев объясняется исключительно личными предпочтениями программиста . Есть ситуации, когда это действительно оправдано. Но, в большинстве случаев вполне достаточно использовать DE. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2011, 19:21 |
|
пути к базе данных
|
|||
---|---|---|---|
#18+
ВладимирМ, Даже не знаю что и сказать. Сам не понял как это вышло, и наверное не пойму. В начале я по всему коду искал this.cDataBase = "DATA\BDUASKI" this.cDataBase = "BDUASKI.dbc" но не нашел и решил было написать что не нашел. Но патом все эти формы, их открытие, коды, ODBC Driver, config.fpw меня достали и я удалил проект. Проект был экспериментальным (оригинал хранился в другой дирректориии), в нем я создавал новые отчеты, формы. Потом из папки с скопировал оригинальный Проект. Удалил директорию с папкой DATA, прописал PATH в файле config.fpw. На этапе отладки приложения открывая форму он попросил указать папку с БД – я указал и форма открылась (в предыдущий рас он не просил открыть, он говорил что не нашел БД). Потом скомпилировал проект, запустил и ПРОЕКТ РАБОТАЕТ. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2011, 11:36 |
|
пути к базе данных
|
|||
---|---|---|---|
#18+
ВладимирМ, Прога работает все вроде ничего, но есть проблемы с «локальным представлением». После запуска приложения я выбираю какую ни будь задачу (просмотр отчета, просмотр карточки и тд.). Задача запускается, все показывает, (в задаче есть под пункты, при просмотре карточки можно нажать кнопку Далее отобразится отдел, Далее имя администратора Далее дата закрытия карточки) но если нажать кнопку Назад выбрать другую карточку, снова нажать кнопку Далее выскочит диалоговое окно «Откройте таблицу Whom.DBF» хотя «Whom» это не таблица а локальное представление. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2011, 11:46 |
|
пути к базе данных
|
|||
---|---|---|---|
#18+
Allkay, Значит, оно закрывается в какой-то момент ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2011, 12:00 |
|
пути к базе данных
|
|||
---|---|---|---|
#18+
IgorNG, Явное закрытие представлений, курсоров или таблиц нет. В задаче участвуют два формы: Сначала запускается первая форма. На этой форме есть три вкладки. Во второй вкладке используется Представление WHOMISP. Но можно перемещаться с первой на вторую вкладку на третью и обратно сколько угодно рас – работает. Код программы используемый на второй вкладке, где используется представление WHOMISP: Код: plaintext 1. 2. 3. 4. 5. 6.
После закрытия Второй формы, на третей вкладке Первой формы можно выбрать другой пункт и опять запустить Вторую форму – сколько угодно рас – работает. Но. После закрытия Второй формы, из третей вкладки Первой формы вернуться на вторую вкладку Первой формы и обратно на третью откроется диалоговое окно «Откройте таблицу WHOMISP.DBF» ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2011, 14:00 |
|
пути к базе данных
|
|||
---|---|---|---|
#18+
Allkay, В каком событии этот код написан? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2011, 14:28 |
|
|
start [/forum/topic.php?fid=41&msg=37412361&tid=1584180]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
228ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 351ms |
0 / 0 |