powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Обновляемая вьюха
19 сообщений из 19, страница 1 из 1
Обновляемая вьюха
    #33147963
Solmyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, а не подскажете, как можно программно в run-time создать обновляемую вьюху? И как ее собственно обновлять?
...
Рейтинг: 0 / 0
Обновляемая вьюха
    #33147970
Solmyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну или не вьюху, ну в общем что-то, что можно обновить данными с помощью какого-нить рефреша. И чтоб потом это что-то можно было положить в основу грида ....
...
Рейтинг: 0 / 0
Обновляемая вьюха
    #33148024
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi, Solmyr!
Ты правильно начинаешь. Создаешь параметризированную LocalView и после смены параметров на другие делаешь команду Requery('Имя LV'). А LV присоединяешь к GRIDу. И будет неплохо.
...
Рейтинг: 0 / 0
Обновляемая вьюха
    #33148065
Solmyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, Владимир.
Скажи, а эту Local View мне придется создать в Desing-Time и сохранить ее в базе? Я праильно понимаю? Но у меня нет базу. У меня свободные таблицы.
Или можно ее хранить отдельно саму по себе?
А создать ее в Run-Time нельзя?
Заранее спасибо.
...
Рейтинг: 0 / 0
Обновляемая вьюха
    #33148094
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi, Solmyr!
Конечно LV создается при наличии БД. Почитай в HELPе об нем, у него другие плюсы, чем простой SQL-запрос.
...
Рейтинг: 0 / 0
Обновляемая вьюха
    #33148115
Solmyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А нельзя ли как-то без БД обойтись? Может там какой-нить обновляемый курсор. Нету такого?
...
Рейтинг: 0 / 0
Обновляемая вьюха
    #33148155
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolmyrА нельзя ли как-то без БД обойтись? Может там какой-нить обновляемый курсор. Нету такого?
Можно построить курсор. Но на практике его нужно показывать в форме в элементе GRID. А потом обновлять курсор. Но придется переопределять GRID, а тут и появятся заморочки. Но непонятна твоя конечная цель. Сначало ее рассказывают.
...
Рейтинг: 0 / 0
Обновляемая вьюха
    #33148189
Solmyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фишка в том, что структура данных и сам грид формируются динамически при заходе в форму, в зависимости от заданной структуры в настройке.
Т.е. существуют два раздела: настройка и данные. В настройке пользователь определяет структуру будущих данных. Задает тип, длину поля, подключение справочников и проч.
И потом по этой байде настроечной динамически строится курсор (вьюха) и грид.
А каждый раз переделывать грид после перезапроса курсора ох как неохота.
Использование БД нежелательно, потому что моя прога - это примочка к основной проге. К ее БД я и подключаюсь и добавлять туда ничего не могу.
Не знаю, может есть еще какой-то выход?
...
Рейтинг: 0 / 0
Обновляемая вьюха
    #33149076
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Solmyr!

1) Можно делать просто запрос, НО автоматического обновления исходных таблиц сделать нельзя - т.е. придятся руками писать код ,который будет "переносить" изменения.
2) Создать LV без базы данных нельзя, НО можно создать свою персональную (даже можно временную!) БД, в которой и создать представления на "чужие" таблицы - причём неважно были они FREE или принадлежали другой базе. Программно представление создаётся по CREATE SQL VIEW AS SELECT ... + куча DBSETPROP() для установки свойств (в т.ч. и тех что отвечают за обновление). Сделай один раз LV руками а потом используй gendbc и посмотри тот prg который она создаст - обычно хватает 1-го раза, чтобы понять как программно всё делать. Начиная с VFP8 можно просто нажать View SQL в дизайнере представлений и увидеть нужный код (ну что такое ThisView думаю понятно и так :) )

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Обновляемая вьюха
    #33149100
WORKSNS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А разве CursorAdapter в данной ситуации не является нормальным решением?
...
Рейтинг: 0 / 0
Обновляемая вьюха
    #33149276
Solmyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Igor.
Спасибо. Слушай, а можно одновременно к двум базам подрубиться, чтоб другая при этом не закрывалась?
to WorkSns.
А можно поподробнее, плиз? Что это такое и с чем его едят?
...
Рейтинг: 0 / 0
Обновляемая вьюха
    #33149373
WORKSNS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
лучшее описание было на сайте Юрия Шутенко - http://kodu.neti.ee/~juri4/index_ru.htm. Я подчерпнул информацию именно там. Сейчас их там не могу найти. Вот фрагмент из статьи
"В Visual FoxPro, при использовании курсор-адаптера вы можете извлекать информацию из локальных и удаленных источников данных, которые могут иметь следующие типы:
Природные ("родные") для VFP курсоры
Open Database Connectivity (ODBC)
ActiveX Data Object (ADO)
Extensible Markup Language (XML)"
"В помощью класса CursorAdapter обеспечивается возможность работы с несвойственными для VFP типами источников данных таким образом, как будто бы они являются родными курсорами Visual FoxPro. Объекты класса CursorAdapter обеспечивают следующие возможности:
Динамическое использование отличающихся от природных источников данных.
Использование либо источника данных объекта CursorAdapter либо окружения данных (data environment).
Совместное использование источников данных в рамках ограничений, накладываемых технологиями последних.
Факультативно определяеть структуру курсора, ассоциированного с объектом CursorAdapter.
Управлять загрузкой данных из источника данных в курсор Visual FoxPro, ассоциированный с объектом CursorAdapter.
Предоставлять данные из из различных источников данных в курсоры Visual FoxPro на основе типов источников данных.
Управлять процессами такими, добавление данных, обновление и удаление с помощью свойств и методов объектов CursorAdapter.
Добавлять объекты CursorAdapter в контейнеры, такие как формы, наборы форм и прочие контейнеры, а не только в контейнер DataEnvironment.
Использовать класс CursorAdapter как свободный класс без ассоциации с окружением данных (data environment)."
Класс появился начиная с 8-й версии.
...
Рейтинг: 0 / 0
Обновляемая вьюха
    #33149387
WORKSNS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл добавить, что отпадают многие проблемы, например при обновлении данных в GRID в котором отображаются данные CursorAdapter достаточно одной команды cursorrefresh() - и все!!! вобщем здорово облегчает жизнь. Я использую связку VFP + FireBird. CursorAdapter здорово облегчает жизнь.
...
Рейтинг: 0 / 0
Обновляемая вьюха
    #33149408
Solmyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to WorkSns.
Спасибо. Только бы еще рассказал бы как его создать. Где этот класс лежит? Он так и назывется?
...
Рейтинг: 0 / 0
Обновляемая вьюха
    #33149435
WORKSNS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если есть желание могу отправить на ящик статью Ю. Шутенко.
...
Рейтинг: 0 / 0
Обновляемая вьюха
    #33149442
Solmyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, конечно есть. Давай, отправь.
И еще. Раз уж речь о вьюхах. Например я создаю SQL VIEW типа:

CREATE SQL VIEW vSpec AS;
SELECT *;
FROM cfg_spec;
INNER JOIN data_spec ON Cfg_spec.id == Data_spec.cfg_spec_id;
ORDER BY Data_spec.rownum, Cfg_spec.numb

Как мне с ней потом работать? Я пишу:

SELECT vSpec
BROWSE

а оно ругается, что алиас не найден.

Прошу прощения, если вопрос детский, просто раньше с вьюхами рабоать не приходилось.
...
Рейтинг: 0 / 0
Обновляемая вьюха
    #33149478
Solmyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, все, понял. Ее надо как таблицу через USE.
to WorkSns.
Ну что, пришлешь статью то? Буду очень признателен.
...
Рейтинг: 0 / 0
Обновляемая вьюха
    #33150362
Solmyr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to WorkSns.
Спасибо, товарищ. Получил статью. Родина Вас не забудет.
...
Рейтинг: 0 / 0
Обновляемая вьюха
    #33155833
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi WORKSNS!

> забыл добавить, что отпадают многие проблемы, например при обновлении данных в GRID в котором отображаются данные CursorAdapter достаточно одной команды cursorrefresh() - и все

Вообще-то это зависит от того ЧТО именно нам требуется. Если требуется поменять сами УСЛОВИЯ выбрки (а не просто ПАРАМЕТРЫ в СТАТИЧЕСКОМ условии) - то CAD.CursorRefresh()= REQUERY() к сожалению отпадает - придётся "переоткрыть" курсор - и соответственно "спасать" грид. Хотя с другой стороны код спасения настолко тривиален, что у меня возникают большие сомнения что это можно назвать "проблемой" :)

P.S. CAD конечно в общем случае более гибкое, управляемое и интересное решение чем RV :)

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Обновляемая вьюха
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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