|
|
|
Обновляемая вьюха
|
|||
|---|---|---|---|
|
#18+
Народ, а не подскажете, как можно программно в run-time создать обновляемую вьюху? И как ее собственно обновлять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2005, 14:14:37 |
|
||
|
Обновляемая вьюха
|
|||
|---|---|---|---|
|
#18+
Ну или не вьюху, ну в общем что-то, что можно обновить данными с помощью какого-нить рефреша. И чтоб потом это что-то можно было положить в основу грида .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2005, 14:17:22 |
|
||
|
Обновляемая вьюха
|
|||
|---|---|---|---|
|
#18+
Hi, Solmyr! Ты правильно начинаешь. Создаешь параметризированную LocalView и после смены параметров на другие делаешь команду Requery('Имя LV'). А LV присоединяешь к GRIDу. И будет неплохо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2005, 14:32:44 |
|
||
|
Обновляемая вьюха
|
|||
|---|---|---|---|
|
#18+
Привет, Владимир. Скажи, а эту Local View мне придется создать в Desing-Time и сохранить ее в базе? Я праильно понимаю? Но у меня нет базу. У меня свободные таблицы. Или можно ее хранить отдельно саму по себе? А создать ее в Run-Time нельзя? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2005, 14:42:54 |
|
||
|
Обновляемая вьюха
|
|||
|---|---|---|---|
|
#18+
Hi, Solmyr! Конечно LV создается при наличии БД. Почитай в HELPе об нем, у него другие плюсы, чем простой SQL-запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2005, 14:50:46 |
|
||
|
Обновляемая вьюха
|
|||
|---|---|---|---|
|
#18+
А нельзя ли как-то без БД обойтись? Может там какой-нить обновляемый курсор. Нету такого? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2005, 14:56:46 |
|
||
|
Обновляемая вьюха
|
|||
|---|---|---|---|
|
#18+
SolmyrА нельзя ли как-то без БД обойтись? Может там какой-нить обновляемый курсор. Нету такого? Можно построить курсор. Но на практике его нужно показывать в форме в элементе GRID. А потом обновлять курсор. Но придется переопределять GRID, а тут и появятся заморочки. Но непонятна твоя конечная цель. Сначало ее рассказывают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2005, 15:07:05 |
|
||
|
Обновляемая вьюха
|
|||
|---|---|---|---|
|
#18+
Фишка в том, что структура данных и сам грид формируются динамически при заходе в форму, в зависимости от заданной структуры в настройке. Т.е. существуют два раздела: настройка и данные. В настройке пользователь определяет структуру будущих данных. Задает тип, длину поля, подключение справочников и проч. И потом по этой байде настроечной динамически строится курсор (вьюха) и грид. А каждый раз переделывать грид после перезапроса курсора ох как неохота. Использование БД нежелательно, потому что моя прога - это примочка к основной проге. К ее БД я и подключаюсь и добавлять туда ничего не могу. Не знаю, может есть еще какой-то выход? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2005, 15:16:49 |
|
||
|
Обновляемая вьюха
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 01:37:22 |
|
||
|
Обновляемая вьюха
|
|||
|---|---|---|---|
|
#18+
А разве CursorAdapter в данной ситуации не является нормальным решением? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 05:02:37 |
|
||
|
Обновляемая вьюха
|
|||
|---|---|---|---|
|
#18+
to Igor. Спасибо. Слушай, а можно одновременно к двум базам подрубиться, чтоб другая при этом не закрывалась? to WorkSns. А можно поподробнее, плиз? Что это такое и с чем его едят? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 09:43:11 |
|
||
|
Обновляемая вьюха
|
|||
|---|---|---|---|
|
#18+
лучшее описание было на сайте Юрия Шутенко - 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-й версии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 10:17:33 |
|
||
|
Обновляемая вьюха
|
|||
|---|---|---|---|
|
#18+
забыл добавить, что отпадают многие проблемы, например при обновлении данных в GRID в котором отображаются данные CursorAdapter достаточно одной команды cursorrefresh() - и все!!! вобщем здорово облегчает жизнь. Я использую связку VFP + FireBird. CursorAdapter здорово облегчает жизнь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 10:26:38 |
|
||
|
Обновляемая вьюха
|
|||
|---|---|---|---|
|
#18+
to WorkSns. Спасибо. Только бы еще рассказал бы как его создать. Где этот класс лежит? Он так и назывется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 10:36:35 |
|
||
|
Обновляемая вьюха
|
|||
|---|---|---|---|
|
#18+
Если есть желание могу отправить на ящик статью Ю. Шутенко. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 10:46:35 |
|
||
|
Обновляемая вьюха
|
|||
|---|---|---|---|
|
#18+
Ага, конечно есть. Давай, отправь. И еще. Раз уж речь о вьюхах. Например я создаю 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 а оно ругается, что алиас не найден. Прошу прощения, если вопрос детский, просто раньше с вьюхами рабоать не приходилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 10:49:09 |
|
||
|
Обновляемая вьюха
|
|||
|---|---|---|---|
|
#18+
А, все, понял. Ее надо как таблицу через USE. to WorkSns. Ну что, пришлешь статью то? Буду очень признателен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 10:58:18 |
|
||
|
Обновляемая вьюха
|
|||
|---|---|---|---|
|
#18+
to WorkSns. Спасибо, товарищ. Получил статью. Родина Вас не забудет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 15:24:03 |
|
||
|
Обновляемая вьюха
|
|||
|---|---|---|---|
|
#18+
Hi WORKSNS! > забыл добавить, что отпадают многие проблемы, например при обновлении данных в GRID в котором отображаются данные CursorAdapter достаточно одной команды cursorrefresh() - и все Вообще-то это зависит от того ЧТО именно нам требуется. Если требуется поменять сами УСЛОВИЯ выбрки (а не просто ПАРАМЕТРЫ в СТАТИЧЕСКОМ условии) - то CAD.CursorRefresh()= REQUERY() к сожалению отпадает - придётся "переоткрыть" курсор - и соответственно "спасать" грид. Хотя с другой стороны код спасения настолко тривиален, что у меня возникают большие сомнения что это можно назвать "проблемой" :) P.S. CAD конечно в общем случае более гибкое, управляемое и интересное решение чем RV :) Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2005, 02:42:26 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33155833&tid=1593914]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
| others: | 245ms |
| total: | 427ms |

| 0 / 0 |
