for flooders
:: Главная :: Решения :: Статьи :: Сайт М. Дроздова :: Файловый архив :: Книга по VFP 9 :: Русский Help Online :: OFF-LINE Форум
   Лисоводы   всех   стран,  объединяйтесь !!!  

Список Форумов  :: Visual Foxpro, Foxpro for DOS
  

Научите работать с Data Environment
ZenTigra
Автор

Сообщений: 468
Дата: 12.09.20 07:51:06
Здравствуйте форумчане, много вы мне помогали, помогите еще раз.
Сейчас начал писать маленькую новую программку, и хочу себе облегчить труд.
Хочу разобраться как работать с Dataenvironment.

Проблема вот в чем.
1.У меня есть несколько баз данных, одна тестовая, другая рабочая
(Как между ними переключаться в программе, вернее как это прописывать в Dataenvironment)
Раньше при запуске программы я выбираю какую базу подключить, и благодаря DO CASE.... ENDCASE, я подключал, ту или иную БД.
Как теперь сделать это в Dataenvironment?

2.У меня есть много одинаковых таблиц, у которых одинаковая структура, благодаря Alias я могу с ними работать из одной формы
T_path="Переменная пути к таблице"+"table"+"№ таблицы"+".dbf"  
  USE &T_path ALIAS table
Как теперь сделать это в Dataenvironment?

И возможно ли это сделать?

PS.Не может же такого быть, что VFP такого не умеет, как же тогда переносить программу на другой компьютер, или диск.



Исправлено: ZenTigra, 12.09.20 07:53
Ratings: 0 negative/0 positive

Re: Научите работать с Data Environment
of63

Сообщений: 19939
Откуда: Н.Новгород
Дата: 12.09.20 08:12:37
А зачем открывать нужную таблицу именно в DE формы? Можно открывать нужную таблицу в LOAD формы, или вообще при старте программы...
Ratings: 0 negative/0 positive

Re: Научите работать с Data Environment
Аспид

Сообщений: 3424
Откуда: Москва
Дата: 12.09.20 08:13:22
Кардинальный совет, отказаться от Dataenvironment.
Насовсем, навсегда. Забыть о его существовании.
1. Сделайте класс доступа к данным.
Возможно сразу не ясно. Сделайте процедуру. Если постараться сделать ее максимально абстрактной, то вот и базовый класс.
Да бог с ним, это можно и позже, а сначала, пищите процедуры. А потом ищите в них общие черты, сигнатуру, заготовка для будущего класса.
И там, мне кажется вам ясно как переключаться между БД.
2. Исходя из первого ответа, второй напрашивается сам.
Вы делаете процедуру получения данных, структура одинаковая, а откуда, можно передать в параметре.

И забудьте про инструмент для домохозяек - Dataenvironment.



Исправлено: Аспид, 12.09.20 08:13
Ratings: 0 negative/1 positive

Re: Научите работать с Data Environment
Аспид

Сообщений: 3424
Откуда: Москва
Дата: 12.09.20 08:17:44
of63
А зачем открывать нужную таблицу именно в DE формы? Можно открывать нужную таблицу в LOAD формы, или вообще при старте программы...
И еще совет. Не работайте с таблицами напрямую, работайте с курсорами.
Хотя конечно, поначалу будет сложнее
Это даст опыт работы (хоть какой то), работы, с настоящими СУБД.
Полегче переходить будет.
Хотя конечно, поначалу сложнее будет
Ratings: 0 negative/0 positive

Re: Научите работать с Data Environment
of63

Сообщений: 19939
Откуда: Н.Новгород
Дата: 12.09.20 09:44:07
of63> А зачем открывать нужную таблицу именно в DE формы? Можно открывать нужную таблицу в LOAD формы, или вообще при старте программы...
>> И еще совет. Не работайте с таблицами напрямую, работайте с курсорами.

Спасибо, Владимир!
Ratings: 0 negative/0 positive

Re: Научите работать с Data Environment
ZenTigra
Автор

Сообщений: 468
Дата: 12.09.20 21:27:20
of63
А зачем открывать нужную таблицу именно в DE формы? Можно открывать нужную таблицу в LOAD формы, или вообще при старте программы...
Так я так сейчас и делаю, просто хотел схитрить, чтоб код не писать, думал мышкой поеложу и все...
Ratings: 0 negative/0 positive

Re: Научите работать с Data Environment
of63

Сообщений: 19939
Откуда: Н.Новгород
Дата: 12.09.20 21:35:01
Куй )
Ratings: 0 negative/0 positive

Re: Научите работать с Data Environment
Simple777

Сообщений: 28735
Дата: 12.09.20 21:35:56
of63
Куй )

Вист!..
Ratings: 0 negative/0 positive

Re: Научите работать с Data Environment
of63

Сообщений: 19939
Откуда: Н.Новгород
Дата: 12.09.20 21:41:48
Вистующий со...
ДзэнТигра, извини, модеры сотрут тот перепихон
Но ты и сам не плошай (раз на русфоруме черпаешь инфу)



Исправлено: of63, 12.09.20 21:48
Ratings: 0 negative/0 positive

Re: Научите работать с Data Environment
PaulWist

Сообщений: 13463
Дата: 12.09.20 22:31:29
of63
А зачем открывать нужную таблицу именно в DE формы? Можно открывать нужную таблицу в LOAD формы, или вообще при старте программы...

Открывать табличку в Form.Load можно, но лучше создать отдельный метод (что и как в нем выполнять - это другой разговор), который дёргать из Form.Init.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive

Re: Научите работать с Data Environment
of63

Сообщений: 19939
Откуда: Н.Новгород
Дата: 12.09.20 22:36:01
ну да, осваивать старый добрый способ - "подпрограммы". Вау! Налетай! Обьясню как это устроено... За знанте видимости переменных - одднльная тема зачетов.
Ratings: 0 negative/0 positive

Re: Научите работать с Data Environment
of63

Сообщений: 19939
Откуда: Н.Новгород
Дата: 12.09.20 22:38:56
Ю Открывать табличку в Form.Load можно, но лучше создать отдельный метод (что и как в нем выполнять - это другой разговор), который дёргать из Form.Init.

Паша, при все уважении, Лоад и Инит отличаются.. тем что ими нужно пользоваться (они сделаны) по разному! (вот так)
Ratings: 0 negative/0 positive

Re: Научите работать с Data Environment
PaulWist

Сообщений: 13463
Дата: 13.09.20 08:03:51
of63
Паша, при все уважении, Лоад и Инит отличаются.. тем что ими нужно пользоваться (они сделаны) по разному! (вот так)

Поэтому в Init лучше открывать и привязывать данные, когда все объекты уже существуют, правда придётся отказаться от мышкодавства и прописывать всё руками, но это только по первости напрягает.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive

Re: Научите работать с Data Environment
lulgu

Сообщений: 1703
Дата: 13.09.20 08:34:16
У каждого свой DE.
У кого-то инструмент для домохозяек, у кого-то - для работы своя версия.



Исправлено: lulgu, 13.09.20 08:36
Ratings: 2 negative/1 positive

Re: Научите работать с Data Environment
ZenTigra
Автор

Сообщений: 468
Дата: 13.09.20 08:46:09
Все вопрос закрыт.
Начал проводить тестирования DataEnvironment, не понравилось, я ожидал большего...
Сохраненных пару минут, при написание кода вручную, не компенсирують те проблемы которые возникают у меня при его использовании...
Ratings: 0 negative/0 positive

Re: Научите работать с Data Environment
Igor Korolyov

Сообщений: 33823
Дата: 13.09.20 13:27:20
PaulWist
Поэтому в Init лучше открывать и привязывать данные, когда все объекты уже существуют, правда придётся отказаться от мышкодавства и прописывать всё руками, но это только по первости напрягает.
Весьма спорное заявление. По мнению разработчиков всё же более подходит для создания источников данных метод Load (возможно без из реального заполнения, т.е. в режиме NoData), а привязка данных осуществляется путём задания свойств у объектов во время разработки, а не кодом в Init.

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


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

Re: Научите работать с Data Environment
Taran

Сообщений: 10781
Откуда: Красноярск
Дата: 13.09.20 14:20:38
Или я не нашёл или нету DE в классе на Form.
Использование чистых форм SCX пис--ц. Лет 20 как забросил. Ибо это для стариканов оставлено для совместимости.
Ratings: 0 negative/0 positive

Re: Научите работать с Data Environment
Igor Korolyov

Сообщений: 33823
Дата: 13.09.20 23:34:38
Не, scx это типа RAD - быстрая разработка. х*як-х*як и в продакшн.
Всё на то и заточено - мышкой то кинул, там перетащил и готово. Быстрее только визардом, но там свои, кхм, "нюансы".


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

Re: Научите работать с Data Environment
Аспид

Сообщений: 3424
Откуда: Москва
Дата: 14.09.20 07:43:16
Igor Korolyov
PaulWist
Поэтому в Init лучше открывать и привязывать данные, когда все объекты уже существуют, правда придётся отказаться от мышкодавства и прописывать всё руками, но это только по первости напрягает.
Весьма спорное заявление. По мнению разработчиков всё же более подходит для создания источников данных метод Load (возможно без из реального заполнения, т.е. в режиме NoData), а привязка данных осуществляется путём задания свойств у объектов во время разработки, а не кодом в Init.
Да ладно, ясно же что имел ввиду Паша. Ну не код же,у каждой формы, заполняющей данными объекты формы.
А если есть класс доступа к данным и он же класс заполняющий объекты, то его сам бог велел в ините вызывать.)

Igor Korolyov
DE в некоторых случаях использовать можно, но... Сложность обработки ошибок открытия курсоров, сложность управления порядком открытия курсоров, отсутствие штатной возможности создания своего базового класса DE для использования в качестве основы для DE форм (можно создать свой базовый класс DE, потом создать конкретный класс DE для одной или нескольких форм, и его уже "подключить" к форме в немодифицируемом виде - но нельзя просто прописать базовый класс а в форме уже набрасывать свои объекты-курсоры в DE).
Вот зря такие вещи пишешь)))
Мудрый и внимания не обратит, а новичек, скажет... "ага, у меня тот самый случай"))))
Есть же на фоксе новички, как не странно)
Ratings: 0 negative/0 positive

Re: Научите работать с Data Environment
Crispy

Сообщений: 16854
Дата: 14.09.20 09:01:19
Igor Korolyov
По мнению разработчиков всё же более подходит для создания источников данных метод Load

Увы, тоже не совсем удачное для этого место. Из-за несколько странной реализации этого метода собственно в фокспро.
Когда-то давно, перебирая все загружаемые поочерредно методы, я обнаружил самое подходящее для создания источников - как раз таки в DE - в методе BeforeOpenTables. Который возможно единственный и имеет смысл использовать даже и без использования прочих возможностей DE, предлагаемых разработчиками.
Именно в этом методе скажем созданный курсор отлично затем цепляется к чему угодно - скажем без проблем становясь источником хоть того же грида.
Заполнять его разумеется можно и после - например в том же Init грида, что в принципе смотрится достаточно логично, ну можно и формы, если уж есть такая необходимость по какой-то причине.
В целом же, как мне кажется, все проблемы DE - из-за недоработки его на этапе последней их версии.


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/1 positive



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

On-line: 11 Simple777  (Гостей: 10)

30.11.2020 23:30:32 exec: 0.04
Mem: 1.542 Mb

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