|
|
|
Вопрос новичка по VisualFoxpro 8.0
|
|||
|---|---|---|---|
|
#18+
Помогите пожалуста с таким вопросом. Неразберусь в чем нужно сохранять запрос, если его данные нужны для отображение в форме. Причем изменение в таблицах на которых основан запрос, должно по умолчанию отображаться в запросе. Причем посроение форм основывается только на *.dbf? как я поняла. А если я сохраню запрос в таблице изменения данных же не будут в ней отображаеться,это законченны "объект" (пока такой вывод). Создание форм на основе курсора ????. Пока я это не смогла сделать. До этого работала на FoxPro 2.6 там с этим проще. Помогите. Заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2006, 11:26 |
|
||
|
Вопрос новичка по VisualFoxpro 8.0
|
|||
|---|---|---|---|
|
#18+
ОlgaLLДо этого работала на FoxPro 2.6 там с этим проще. А как Вы работали в FPD 2.6 с запросами, при такой постановке задачи? В VFP в этом смысле почти ничего не изменилось. Результат работы Select-SQL - это ДРУГАЯ таблица. Никакого отношения к таблицам-источникам не имеющая. Если изменились данные в таблице-источнике, необходимо заново выполнить Select-SQL. Верно и обратное. Изменение в результате выборке по Select-SQL не имеют никакого отношения к таблицам-источникам. Чтобы облегчить взаимный обмен данными между выборкой по Select-SQL и таблицами-источниками в VFP был создан такой объект как LOCAL VIEW. Физически, это все тот же запрос Select-SQL, но в дополнительной "упаковке". Эта "упаковка" облегчает процесс обмена, да и собственно работу с результатом выполнения запроса. Для любых объектов формы Local View ничем не отличается от обычных таблиц базы данных. Работа с ним происходит как с обычной таблицей. Для того, чтобы заново запросить данные из таблиц источников в Local View, используется команда Requery("MyView"), которая уничтожает все записи в Local View и заново их формирует данными из таблиц-источников. Для того, чтобы изменения, сделанные во View попали в таблицу-источник, необходимо сделать ряд настроек на закладке Update Criteria в дизайнере View. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2006, 11:48 |
|
||
|
Вопрос новичка по VisualFoxpro 8.0
|
|||
|---|---|---|---|
|
#18+
Ага спасибо, полезная информация. А в Foxpro 2.6, я работала так: Cоздавала запрос, помещала его результат в таблицу. Данные таблицы помещала в отчет который сохраняла в текстовом файле. При закрытии запроса данная таблица удалялась. И соответственно наоборот. То есть я не пользовалась помощью курсоров и предсавлений. А сейчас изучаю представления и курсоры. Что касаеться LOCAL VIEW, я все поняла. А вот просто курсор. Если предсавлениея обновляемые курсоры, то смысл просто курсоров. В чем они полезны. Форму я могу создать на основе LOCAL VIEW, я уже пробовала. А вот на основе просто курсора нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2006, 13:26 |
|
||
|
Вопрос новичка по VisualFoxpro 8.0
|
|||
|---|---|---|---|
|
#18+
Курсор - это та же самая временная таблица. Просто FoxPro сам же ее и удалит в момент закрытия. В этом смысле, работа с курсорами ничем не отличается от работы с обычными таблицами. Все то же самое, что и в FPD (там тоже можно было создавать курсоры). С точки зрения дизайнера форм проблема заключается в том, что на момент конструирования самой формы этого курсора физически просто не существует. Кроме того, он не является объектом базы данных. Поэтому курсор не видно в раскрывающихся списках на этапе проектирования формы. Привязку объектов к курсору надо осуществлять "вручную". Т.е. где-то в INIT-формы так прямо и писать: SELECT * FROM MyTab INTO CURSOR curMyTab NOFILTER ThisForm.TextBox.ControlSource = "curMyTab.Field1" Исключением в этом смысле являются объекты Grid, ListBox и ComboBox. Т.е. с ними можно поступить также как и с обычными объектами, сделав привязку к созданному в INIT-формы курсору, но кроме этого есть и еще один способ. У них можно в качестве типа источника данных указать SQL-statment Grid.RecordSourceType = 4 - SQL-statment или Combo.RowSourceType = 3 - SQL-statment В этом случае, в качестве собственно источника данных можно написать запрос, результат которого и будет использован как источник данных для объекта Grid.RecordSource = "SELECT * FROM MyTab INTO CURSOR curMyTab NOFILTER" или Combo.RowSource = "SELECT * FROM MyTab INTO CURSOR curMyTab NOFILTER" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2006, 13:43 |
|
||
|
Вопрос новичка по VisualFoxpro 8.0
|
|||
|---|---|---|---|
|
#18+
Спасибо Владимир, вы мне помогли 8))) А то совсем запуталась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2006, 14:10 |
|
||
|
Вопрос новичка по VisualFoxpro 8.0
|
|||
|---|---|---|---|
|
#18+
Можно для привязывания Grid к курсору на этапе создания сделать Select .......From.......Into Table MyTable. Привязать билдером Grid к таблице MyTable. Затем убрать таблицу MyTable из DatEnv и уничтожить вообще. Поставить в нужное место Select .......From.......Into Cursor MyTable. И все. Экономится много времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2006, 15:09 |
|
||
|
Вопрос новичка по VisualFoxpro 8.0
|
|||
|---|---|---|---|
|
#18+
2 5631 Можно проще, пропиши в гриде имя курсора и ставь свой селект где хочешь и когд ахочешь, неважно до того ли ты пропишешь или после. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2006, 19:16 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33515849&tid=1592455]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
65ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 368ms |

| 0 / 0 |
