powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / CursorAdapter не обновляет поля(date) на MySQL- Прошу помочь
7 сообщений из 32, страница 2 из 2
CursorAdapter не обновляет поля(date) на MySQL- Прошу помочь
    #37880474
VIVA_CA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VIVA_CA,

Уважаемый Учитель, грустно стало без общения!

Хочу отказаться от создания СА в DE и по Вашей методике перейти в LOAD.

Если можно – подробнее по пунктам( как в последнем ответе) :
Я создаю Class CA штатным билдером и на его основе затем в DE используя
This.ca1=This.NEWOBJECT('ca1', 'sqlCursor', 'mylib') привязываю к конкретной форме.
( Сейчас уже все ок! даже с датами)
Но если весь текст настройки переношу в LOAD (простым копированием) - при инициализации формы
Выдает:( из Help)
Объектный класс недопустим для этого контейнера (Ошибка 1744)
Вы попытались добавить объект, как член родительского объекта, методом AddObject . Он не может быть добавлен, потому что класс объекта как члена, не может быть членом объекта родительского класса. Например, Вы не можете добавить объект Grid к объекту PageFrame.
Это понятно! Но как выкрутиться?

При This.ca1=CREATEOBJECT("CursorAdapter")- не ругаетя – но естественно это уже другой СА.
Я так понимаю – вы изначально создаете СА в DE чтобы отладиться?

Как Вы писали раньше – создал свойство CA1(все описание его по умолчанию) на форме и в LOAD
( или это сделает утилита tr_cad ?)

Как сделать привязку к элементам формы( Что под этим понимается - указание конкретных полей?)

Как запускается (откуда) ? tr_cad
И какие еще учесть нюансы CA после отработки tr_cad, копирования из буфера в LOAD, и удаления из DE?
...
Рейтинг: 0 / 0
CursorAdapter не обновляет поля(date) на MySQL- Прошу помочь
    #37880755
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VIVA_CAБоюсь утомить, но хотелось бы узнать Ваше мнение – по каким причинам не рекомендуют использовать среду DE? (на сайтах просто не рекомендуют использовать)
Основная причина - банальное непонимание! Непонимание даже не столько собственно DE, сколько общих принципов построения приложения. Разумеется, есть ситуации, с которыми DE справиться не может или может очень "экзотическими" способами. Но в подавляющем большинстве проектов подобных ситуаций просто не возникает.

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

С другой стороны, то, что делает DE - очень просто выполнить программно. Это буквально несколько строк кода. Вот и появляется рекомендация не использовать DE совсем. А это неправильно.

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

VIVA_CAи еще - как обмануть DE не закрывать CA при закрытии формы – AutoCloseTables c CA не срабатывает (хотя уже перевожу все в LOAD формы)
Вот это как раз и является типичной ситуацией непонимания общих принципов построения приложения. Если Вам нужен объект вне формы, то и создавать его надо вне формы (до вызова формы), а не бороться с последствиями!

Только вот, Вы предварительно пробовали понять, а ЗАЧЕМ Вам нужен CA после закрытия формы? Действительно ли нужен именно CA, а не что-то другое?

VIVA_CAХочу отказаться от создания СА в DE и по Вашей методике перейти в LOAD.

Зачем? Какая у Вас возникла проблема, которую невозможно решить в рамках использования DE? Хочу оставить CA после закрытия формы - это не проблема. Это выбранный Вами способ решения проблемы. А сама проблема-то в чем? Зачем Вам понадобился CA, созданный для работы в конкретной формы вне этой формы?

На всякий случай напомню, что событие Object.Load выполняется непосредственно ПЕРЕД созданием экземпляра объекта Object. Т.е. в момент выполнения Form.Load собственно объекта Form еще не существует! Как следствие, невозможно как-то повлиять (создать, изменить) на свойства не существующего объекта.
...
Рейтинг: 0 / 0
CursorAdapter не обновляет поля(date) на MySQL- Прошу помочь
    #37881095
VIVA_CA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаеиый ВладимирМ,

Большое спасибо за Ваши несколько резкие но справедливые ответы на мои предыдущие вопросы.
Многие нюансы paботы с CA я переосмыслил в переписке с уважаеиым Sea_Cat и с Вами.
Пока меня устраивает работа СА в DE. Но в большинстве ответов уважаемых метров на вопросы чайников проскальзывает
совет переводить СА из DE в LOAD.
В самом последнем моем запросе (!!! на 2-й стр.) я просил уважаемого Sea_Cat поделиться опытом.
...
Рейтинг: 0 / 0
CursorAdapter не обновляет поля(date) на MySQL- Прошу помочь
    #37881440
Sea_Cat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМОсновная причина - банальное непонимание! Непонимание даже не столько собственно DE, сколько общих принципов построения приложения.
Чтобы с пониманием подходить к работе с DE и CA, хочу порекомендовать циклы статей Юрия Шутенко по DE http://www.hot.ee/jurisfox/vfp60/de_01_ru.htm и по работе с СА http://kodu.neti.ee/~juri4/vfp60/ca_01_ru.htm . Также поиск по теме CursorAdapter на форуме FoxClub.ru даст много полезной информации.
ВладимирМDE - это очень удобный инструмент для "визуальной" настройки объектов формы.
От такого инструмента отказываться на этапе проектирования просто неразумно. Например, перетащив заголовок курсора из DE на форму, получаем заготовку грида, у которого все колонки уже привязаны к источнику данных, остается оформить заголовки, да отрегулировать ширину колонок. Также легко - перетаскиванием - создаются поля ввода TEXT.
Когда визуальное проектирование формы закончено, закрываю редактор форм, запускаю tr_cad и указываю файл формы (.SCX).
Затем снова запускаю форму, открываю LOAD и вставляю из буфера обмена программное описание всех СA. Остается удалить их из DE.
В достаточно простых случаях - если в форме один - два СА - пусть они остаются в DE. Но если, к примеру, нужно при создании СА поменять SelectCmd - тут приходится работать с программной реализацией CA.
То, что в событие LOAD невозможна передача параметров - не проблема. Нужную информацию для построения СА можно передать через класс-посредник (на худой конец - через глобальные переменные).
Это только один из вариантов работы с СА. На этом форуме много своих примеров по работе с CA выкладывал прошелмимо , у него другой подход, тоже можно почерпнуть много полезного.
...
Рейтинг: 0 / 0
CursorAdapter не обновляет поля(date) на MySQL- Прошу помочь
    #37881881
VIVA_CA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sea_Cat,

Читаю с большим интересом статьи которые вы рекомендовали.

Но хочется до конца разобраться с затронутой Вами темой.

1) Например, перетащив заголовок курсора из DE на форму – как это делается и что означает?
Также легко - перетаскиванием - создаются поля ввода TEXT. - ? если можно подробнее!

2) Работа с tr_cad:
Я создаю Class CA штатным билдером и записываю в бибилиотеку классов и на его основе затем в DE
BeforeOpenTables:
This.NEWOBJECT('ca1', 'sqlCursor', 'mylib') и дальше остальные свойства
this.ca1.DataSource = gn_Soed
и т.д.
Закрываю форму

Запускаю tr_cad – ругается на первой строчке Parameters n_frm (естественно тк не процедура)
Ignore

Scan For Alltrim(frm.Class) = 'cursoradapter' не выполняется условие- те не находит
Визуально просмотрел и остальные поля таблицы frm - нет

Я так понимаю надо использовать CREATEOBJECT("CursorAdapter")? Но теряется смысл ипользования
созданного класса?
...
Рейтинг: 0 / 0
CursorAdapter не обновляет поля(date) на MySQL- Прошу помочь
    #37882146
Sea_Cat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VIVA_CA, что-то Вы совсем запутались. Зачем создавать объект в BeforeOpenTables ?
И в чем смысл создания своего класса CA ? Так обычно поступают с визуальными объектами форм, создавая свои классы на основе стандартных, задавая общую цветовую схему, стиль оформления и т.п. А что общего можно прописать для свойств и методов СА ?
Я рекомендую идти от простого к сложному. Почитайте статьи Юрия Шутенко - это как букварь по СА. Создайте тестовый проект и на простых примерах разберитесь, что и как работает. Начните с создания СА билдером в DE - без NEWOBJECT и промежуточных классов.
Когда столкнетесь с ситуацией, когда невозможно что-либо реализовать в рамках DE - вот тогда и переходите к программному созданию СА.

По поводу перетаскивания объектов из DE на форму - все очень просто. Откройте DE, найдите нужный Вам курсор, установите указатель мышки на заголовок курсора, нажмите левую кнопку и тяните на форму. Когда отпустите кнопку - будет Вам Grid. Точно также и с отдельными полями курсора.
...
Рейтинг: 0 / 0
CursorAdapter не обновляет поля(date) на MySQL- Прошу помочь
    #37882262
VIVA_CA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Благодарю!
...
Рейтинг: 0 / 0
7 сообщений из 32, страница 2 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / CursorAdapter не обновляет поля(date) на MySQL- Прошу помочь
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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