Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Обновляемая вьюха / 19 сообщений из 19, страница 1 из 1
04.07.2005, 14:14:37
    #33147963
Solmyr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновляемая вьюха
Народ, а не подскажете, как можно программно в run-time создать обновляемую вьюху? И как ее собственно обновлять?
...
Рейтинг: 0 / 0
04.07.2005, 14:17:22
    #33147970
Solmyr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновляемая вьюха
Ну или не вьюху, ну в общем что-то, что можно обновить данными с помощью какого-нить рефреша. И чтоб потом это что-то можно было положить в основу грида ....
...
Рейтинг: 0 / 0
04.07.2005, 14:32:44
    #33148024
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновляемая вьюха
Hi, Solmyr!
Ты правильно начинаешь. Создаешь параметризированную LocalView и после смены параметров на другие делаешь команду Requery('Имя LV'). А LV присоединяешь к GRIDу. И будет неплохо.
...
Рейтинг: 0 / 0
04.07.2005, 14:42:54
    #33148065
Solmyr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновляемая вьюха
Привет, Владимир.
Скажи, а эту Local View мне придется создать в Desing-Time и сохранить ее в базе? Я праильно понимаю? Но у меня нет базу. У меня свободные таблицы.
Или можно ее хранить отдельно саму по себе?
А создать ее в Run-Time нельзя?
Заранее спасибо.
...
Рейтинг: 0 / 0
04.07.2005, 14:50:46
    #33148094
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновляемая вьюха
Hi, Solmyr!
Конечно LV создается при наличии БД. Почитай в HELPе об нем, у него другие плюсы, чем простой SQL-запрос.
...
Рейтинг: 0 / 0
04.07.2005, 14:56:46
    #33148115
Solmyr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновляемая вьюха
А нельзя ли как-то без БД обойтись? Может там какой-нить обновляемый курсор. Нету такого?
...
Рейтинг: 0 / 0
04.07.2005, 15:07:05
    #33148155
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновляемая вьюха
SolmyrА нельзя ли как-то без БД обойтись? Может там какой-нить обновляемый курсор. Нету такого?
Можно построить курсор. Но на практике его нужно показывать в форме в элементе GRID. А потом обновлять курсор. Но придется переопределять GRID, а тут и появятся заморочки. Но непонятна твоя конечная цель. Сначало ее рассказывают.
...
Рейтинг: 0 / 0
04.07.2005, 15:16:49
    #33148189
Solmyr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновляемая вьюха
Фишка в том, что структура данных и сам грид формируются динамически при заходе в форму, в зависимости от заданной структуры в настройке.
Т.е. существуют два раздела: настройка и данные. В настройке пользователь определяет структуру будущих данных. Задает тип, длину поля, подключение справочников и проч.
И потом по этой байде настроечной динамически строится курсор (вьюха) и грид.
А каждый раз переделывать грид после перезапроса курсора ох как неохота.
Использование БД нежелательно, потому что моя прога - это примочка к основной проге. К ее БД я и подключаюсь и добавлять туда ничего не могу.
Не знаю, может есть еще какой-то выход?
...
Рейтинг: 0 / 0
05.07.2005, 01:37:22
    #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
05.07.2005, 05:02:37
    #33149100
WORKSNS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновляемая вьюха
А разве CursorAdapter в данной ситуации не является нормальным решением?
...
Рейтинг: 0 / 0
05.07.2005, 09:43:11
    #33149276
Solmyr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновляемая вьюха
to Igor.
Спасибо. Слушай, а можно одновременно к двум базам подрубиться, чтоб другая при этом не закрывалась?
to WorkSns.
А можно поподробнее, плиз? Что это такое и с чем его едят?
...
Рейтинг: 0 / 0
05.07.2005, 10:17:33
    #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
05.07.2005, 10:26:38
    #33149387
WORKSNS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновляемая вьюха
забыл добавить, что отпадают многие проблемы, например при обновлении данных в GRID в котором отображаются данные CursorAdapter достаточно одной команды cursorrefresh() - и все!!! вобщем здорово облегчает жизнь. Я использую связку VFP + FireBird. CursorAdapter здорово облегчает жизнь.
...
Рейтинг: 0 / 0
05.07.2005, 10:36:35
    #33149408
Solmyr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновляемая вьюха
to WorkSns.
Спасибо. Только бы еще рассказал бы как его создать. Где этот класс лежит? Он так и назывется?
...
Рейтинг: 0 / 0
05.07.2005, 10:46:35
    #33149435
WORKSNS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновляемая вьюха
Если есть желание могу отправить на ящик статью Ю. Шутенко.
...
Рейтинг: 0 / 0
05.07.2005, 10:49:09
    #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
05.07.2005, 10:58:18
    #33149478
Solmyr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновляемая вьюха
А, все, понял. Ее надо как таблицу через USE.
to WorkSns.
Ну что, пришлешь статью то? Буду очень признателен.
...
Рейтинг: 0 / 0
05.07.2005, 15:24:03
    #33150362
Solmyr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновляемая вьюха
to WorkSns.
Спасибо, товарищ. Получил статью. Родина Вас не забудет.
...
Рейтинг: 0 / 0
08.07.2005, 02:42:26
    #33155833
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновляемая вьюха
Hi WORKSNS!

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

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

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

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


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