Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Use или DataEnvironment / 12 сообщений из 12, страница 1 из 1
03.08.2007, 14:17
    #34704177
МашкоБ.В.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Use или DataEnvironment
Подскажите как лучше и правильнее делать, открывать таблицы в Init формы через команду
Код: plaintext
Use table1 in   0  
и закрывать их при закрытии формы, или просто добавить их в DataEnvironment и поставить автоматическое открытие и закрытие.
...
Рейтинг: 0 / 0
03.08.2007, 14:35
    #34704222
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Use или DataEnvironment
Зависит от конкретной задачи.

Для очень большого круга задач вполне достаточно включить таблицу в DataEnvironment.

Если же по каким-либо причинам необходимо вручную контролировать открытие и закрытие таблиц, то это надо делать в событиях формы LOAD и UNLOAD по той причине, что в INIT-формы открывать таблицы уже "поздно", поскольку инициализация объектов формы выполняется до метода INIT-формы. Это значит, что при открытии таблицы в INIT-формы придется вручную повторить процесс привязки объектов формы к таблицам для некоторых объектов.
...
Рейтинг: 0 / 0
03.08.2007, 14:42
    #34704236
Away_N
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Use или DataEnvironment
Даже если Вы их добавите в Data Envinroment их все равно придется открывать и закрывать.
Лично я делаю так (при отладке):
1. Создаю программный файл.
2. В нем открываю базу данных.
3. Затем открываю все таблицы в свободной рабочей области
Use myTable in 0
4. А в формах обращаюсь к нужной таблице через Select

Select myTable

А когда компилирую файл, то в главную процедуру приложения переношу туда весь код открытия базы данных и таблиц (см. выше).
...
Рейтинг: 0 / 0
03.08.2007, 14:57
    #34704289
Peisov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Use или DataEnvironment
Мамы всякие нужны, мамы всякие важны ....

Как правильнее - вряд ли кто скажет ... Можно говорить о том, как привычнее, как оптимальнее при решении конкретной задачи и т.п.
...
Рейтинг: 0 / 0
03.08.2007, 14:58
    #34704295
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Use или DataEnvironment
Away_NДаже если Вы их добавите в Data Envinroment их все равно придется открывать и закрывать.
Почему? При настройках AutoOpen = .T. и AutoClose = .T. (это значения по умолчанию) все произойдет автоматически.

Away_NЛично я делаю так (при отладке):
1. Создаю программный файл.
2. В нем открываю базу данных.
3. Затем открываю все таблицы в свободной рабочей области
Use myTable in 0
4. А в формах обращаюсь к нужной таблице через Select

Select myTable

А когда компилирую файл, то в главную процедуру приложения переношу туда весь код открытия базы данных и таблиц (см. выше).
Даже для работы в FPD такой подход кажется избыточным. Зачем же открывать ВСЕ таблицы? А как быть с Private DataSession?
...
Рейтинг: 0 / 0
03.08.2007, 15:19
    #34704383
Away_N
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Use или DataEnvironment
ВладимирМ
Почему? При настройках AutoOpen = .T. и AutoClose = .T. (это значения по умолчанию) все произойдет автоматически.

Я fox я изучаю всего год (и скажу честно, что мне многому еще нужно поучиться при работе с этой СУБД ). Но сколько я не создавала формы, даже если эти настройки стоят (AutoOpen, AutoClose), Fox все равно требовал открыть соответствующую таблицу. Поэтому я выбрала метод, хоть и громоздкий, но верный: буду знать, что в последствии не вылетит ошибка:

Canot access the selected table или что-нибудь в этом роде.

Может есть более простой способ, но пока я к этому еще не пришла. Как говорится: "делать буду пока так, как сказала мама".
С уважением Away_N.
...
Рейтинг: 0 / 0
03.08.2007, 15:30
    #34704420
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Use или DataEnvironment
Away_N ВладимирМ
Почему? При настройках AutoOpen = .T. и AutoClose = .T. (это значения по умолчанию) все произойдет автоматически.

Я fox я изучаю всего год (и скажу честно, что мне многому еще нужно поучиться при работе с этой СУБД ). Но сколько я не создавала формы, даже если эти настройки стоят (AutoOpen, AutoClose), Fox все равно требовал открыть соответствующую таблицу. Поэтому я выбрала метод, хоть и громоздкий, но верный: буду знать, что в последствии не вылетит ошибка:

Canot access the selected table или что-нибудь в этом роде.

Может есть более простой способ, но пока я к этому еще не пришла. Как говорится: "делать буду пока так, как сказала мама".
Чтобы сказать в чем проблема, надо знать ТОЧНОЕ сообщение об ошибке. Т.е. дословно. На что Fox ругался? Более того, в какой момент это сообщение возникает? На этапе разработки приложения или же при запуске готового EXE?

При работе с DataEnvironment надо очень тщательно следить за текущей директорией и настройкой SET PATH, поскольку они являются определяющими при автоматическом поиске файлов.
...
Рейтинг: 0 / 0
03.08.2007, 15:44
    #34704466
Away_N
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Use или DataEnvironment
Кстати, ВладимирМ, по ходу дискута у меня возник к Вам вопрос именно по команде Set Path.
Следующая запись команд использует текущую дирректорию, и в каталогах bmp;class;data;dhelp;forms;prg;report ищет соответствующие типы файлов?

авторDEFAULT=.\
path=bmp;class;data;dhelp;forms;prg;report

Я правильно понимаю?
...
Рейтинг: 0 / 0
03.08.2007, 15:54
    #34704497
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Use или DataEnvironment
В таком синтаксисе, директории, перечисленные в PATH - это относительные пути. Относительно текущей директории.

Но это именно пути . Какие именно типы файлов там лежат для FoxPro не имеет никакого значения. FoxPro будет искать файл во всех перечисленных путях. Вне зависимости от его типа.
...
Рейтинг: 0 / 0
03.08.2007, 15:57
    #34704506
Away_N
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Use или DataEnvironment
ВладимирМВ таком синтаксисе, директории, перечисленные в PATH - это относительные пути. Относительно текущей директории.

Но это именно пути . Какие именно типы файлов там лежат для FoxPro не имеет никакого значения. FoxPro будет искать файл во всех перечисленных путях. Вне зависимости от его типа.

То есть,программа при переносе на другую машину будет привязываться именно к тому каталогу, куда ее поместили?
...
Рейтинг: 0 / 0
03.08.2007, 17:06
    #34704743
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Use или DataEnvironment
Away_N ВладимирМВ таком синтаксисе, директории, перечисленные в PATH - это относительные пути. Относительно текущей директории.

Но это именно пути . Какие именно типы файлов там лежат для FoxPro не имеет никакого значения. FoxPro будет искать файл во всех перечисленных путях. Вне зависимости от его типа.

То есть,программа при переносе на другую машину будет привязываться именно к тому каталогу, куда ее поместили?
Да.

Если каким-либо способом не будет изменена текущая директория. Но, по умолчанию, привязка будет именно к тому каталогу, куда поместили программу.
...
Рейтинг: 0 / 0
03.08.2007, 17:14
    #34704770
Away_N
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Use или DataEnvironment
Большое спасибо, ВладимирМ!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Use или DataEnvironment / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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