powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / А как обновить CURSOR без его перезагрузки?
24 сообщений из 24, страница 1 из 1
А как обновить CURSOR без его перезагрузки?
    #32623995
__GUEST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создаю курсор:
select * from t1 into cursor c1
Затем нужно обновить курсор без его перезагрузки, а то Grid разрушается.
...
Рейтинг: 0 / 0
А как обновить CURSOR без его перезагрузки?
    #32624033
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
А как обновить CURSOR без его перезагрузки?
    #32624034
A
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ofrm.grid1.RecordSource=''
SELECT * FROM labels INTO CURSOR c1
ofrm.grid1.RecordSource='c1'
...
Рейтинг: 0 / 0
А как обновить CURSOR без его перезагрузки?
    #32624101
__GUEST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я делаю также:
grid1.recordsource = ""
i = 1..(grid1.ColumnCount=5) : columns(i).comments = columns(i).ControlSource
select * from t1 into cursor c1
grid1.recordsource = "c1"
i = 1..(grid1.ColumnCount=11) : columns(i).ControlSource = columns(i).comments
Получается, что грид все-таки перестраивается. Что я делаю не так?
...
Рейтинг: 0 / 0
А как обновить CURSOR без его перезагрузки?
    #32624124
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изначально в дезайнер в качестве Grid.RecordSource должно стоять (None), причем это (None) должно быть выделено жирным шрифтом. Ни в коем случае нельзя сбрасывать его через "Reset At Default"
...
Рейтинг: 0 / 0
А как обновить CURSOR без его перезагрузки?
    #32624300
fox_kiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну ребята, либо я не понял, либо вы бредите...

=requer()

и ничего больше не нужно...

вы о чем говорили господа???
...
Рейтинг: 0 / 0
А как обновить CURSOR без его перезагрузки?
    #32624421
__GUEST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to fox_kiv

Не вводите в заблуждение аудиторию:
select * from t1 into cursor c1
=requery('c1')
и смотрите, как ругнется Fox.
...
Рейтинг: 0 / 0
А как обновить CURSOR без его перезагрузки?
    #32624437
fox_kiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я и не ввожу,

считаю глупо курсор пихать в грид если есть view,

зачем нужен допотопный селект, если можно использовать представление,

тогда:

=requ()
thisform.refresh

и вся прога, два опреатора...

а вы там городите огород в чистом поле и блудите в трех березах...
...
Рейтинг: 0 / 0
А как обновить CURSOR без его перезагрузки?
    #32624467
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если так?
i = 1..(grid1.ColumnCount=5) : columns(i).comments = columns(i).ControlSource
grid1.recordsource = ""
select * from t1 into cursor c1
grid1.recordsource = "c1"
i = 1..(grid1.ColumnCount=11) : columns(i).ControlSource = columns(i).comments
...
Рейтинг: 0 / 0
А как обновить CURSOR без его перезагрузки?
    #32624468
Pavel_t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чтобы не переопределять грид для vfp8 работает

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
procedure the_c1
if used('c1')
   select c1
   zap in c1
   insert  into c1 select * from t1
else 
**** срабатывает при первом запуске
   select * from t1 into cursor c1 readwrite
endif




.... и только время боится пирамид!
...
Рейтинг: 0 / 0
А как обновить CURSOR без его перезагрузки?
    #32624489
fox_kiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
бред какой-то мнда,

хотя у павла есть некий просвет в темном царстве

только токда уж не :

if used('c1')
select c1
zap in c1
insert into c1 select * from t1
else
**** срабатывает при первом запуске
select * from t1 into cursor c1 readwrite
endif


а :

(use in c1

select * from и т.д.)

и вся прога, а то любите вы городить и усложнять, наслаивать и заворачивать... выворачивая все наизнанку.
...
Рейтинг: 0 / 0
А как обновить CURSOR без его перезагрузки?
    #32624815
Por
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Por
Гость
fox_kivбред какой-то мнда,

хотя у павла есть некий просвет в темном царстве

только токда уж не :

if used('c1')
select c1
zap in c1
insert into c1 select * from t1
else
**** срабатывает при первом запуске
select * from t1 into cursor c1 readwrite
endif


а :

(use in c1

select * from и т.д.)

и вся прога, а то любите вы городить и усложнять, наслаивать и заворачивать... выворачивая все наизнанку.

Похоже, что именно use in c1 Pavel_t и хотел избежать, т.к. при выполнении этой команды курсор закроется и Grid сбросит все настройки.
...
Рейтинг: 0 / 0
А как обновить CURSOR без его перезагрузки?
    #32624886
__GUEST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to fox_kiv
Скажите мне, есть ли в данном случае принципиальное отличие локальной вьюшки от курсора? думаю нет.

Спасибо, Pavel_t, пример работает.
...
Рейтинг: 0 / 0
А как обновить CURSOR без его перезагрузки?
    #32626301
fox_kiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot __GUEST]to fox_kiv
Скажите мне, есть ли в данном случае принципиальное отличие локальной вьюшки от курсора? думаю нет.



есть, есть принципиальная разница, вью более мобилен и перемещаем, он может быть как удаленным так и локальным, много и других у него преимуществ. А запрос - это первое, что сделал фокс по SQL , помнится году в 91 мы активно их (запросы) использовали, тогда на фоксе делалось много, например заработная плата, ОК, ОТиЗ, учет материалов и т.д.

базы обрабатывались огромные, учитывая что это делалось на XT, фокс обеспечивал приемлемую скорость обработки, в том числе и через запросы.

Сегодня вью занял свою позицию, запрос отошел в сторону, поэтому я вам настоятельно рекомендую разобраться с вью, и использовать в большей мере их. Преимуществ много, например параметрический вью, возможно ли это в запросе?
...
Рейтинг: 0 / 0
А как обновить CURSOR без его перезагрузки?
    #32626503
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fox_kiv

У Вас неправильное понимание того, что такое View.

View - это тот же самый SQL-запрос, но при определенных настройках его можно сделать обновляемым. Т.е. изменения внесенные в результирующую выборку попадут в исходные таблицы.

Однако при желании, то же самое можно сделать и с обычным курсором, полученным по команде Select-SQL используя настройки CursorSetProp().

Просто View сделает эти настройки автоматически. Не надо будет писать собственную процедуру установки этих настроек.

Еще одно преимущество View - это специальные команды по его обновлению. Для Select-SQL как уже показали выше надо писать дополнительный код

В общем, View - это Select-SQL + немного кода. Это самое "немного кода" View выполняет автоматически, а для Select-SQL придется писать ручками.

Преимущества View именно в этой автоматизации. Но в ней же и недостатки. Дело в том, что любой автомат рассчитан на определенные условия функционирования. Как следствие, далеко не каждый Select-SQL можно перевести во View.
...
Рейтинг: 0 / 0
А как обновить CURSOR без его перезагрузки?
    #32626592
fox_kiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot ВладимирМ] fox_kiv

У Вас неправильное понимание того, что такое View.

Ну и чего не правильного? прокоментировали мое мнение и вывод - неправильное понимание.... чего понимание... понимание пониманию понимания?

праметризированный вью покрывает все недостатки...

кроме того хранить базу в фокс анахранизм,

базу нужно держать в оракле или в сиквеле на худой конец, а тут уж без remote view никак...

ну вообще-то дело вкуса, нравится писать запросы - пишите, мне проще вьюхи городить...
...
Рейтинг: 0 / 0
А как обновить CURSOR без его перезагрузки?
    #32626841
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fox_kivНу и чего не правильного?
Принципиальное непонимание того, что View и Select-SQL для FoxPro - по сути одно и то же. Вы их почему-то противопоставляете. Просто View автоматизирует некоторые процессы.

fox_kivпраметризированный вью покрывает все недостатки...
Не все. Кроме того, имеет собственные недостатки.

fox_kivкроме того хранить базу в фокс анахранизм,
Почему собственно? Это зависит от конкретной решаемой задачи.

fox_kivбазу нужно держать в оракле или в сиквеле на худой конец, а тут уж без remote view никак...
М-да. Живут же люди... Оракл для них купить не проблема. Специально, чтобы хранить базу данных на 50 таблиц и пару миллионов записей

fox_kivну вообще-то дело вкуса, нравится писать запросы - пишите, мне проще вьюхи городить...
Вопрос не в том "нравится/не нравится", а в том, "можно/нельзя". Далеко не все можно решить через View
...
Рейтинг: 0 / 0
А как обновить CURSOR без его перезагрузки?
    #32626879
fox_kiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. Не противопоставляю, а выбираю, выбор всегда есть...
"принципиального непонимания" быть не может, 15 лет с фоксом(работа) + 4 года преподавания в вузе: теория субд, V.FoxPro, теория отношений и др.
это у вас не понимание, и ответы на ваше же непонимание....

2. Какие недостатки? Перечислите пожалуйста...

3.Конкретные решаемые задачи на тридцать записей можно сделать в екселе или аксесе на Худой Конец...

4. М-да, задачи бывают разные...

5. Далеко... далеко не все можно решать в принципе, и через вью в том числе... такова жизнь...
...
Рейтинг: 0 / 0
А как обновить CURSOR без его перезагрузки?
    #32627079
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fox_kiv1. Не противопоставляю, а выбираю, выбор всегда есть...
"принципиального непонимания" быть не может, 15 лет с фоксом(работа) + 4 года преподавания в вузе: теория субд, V.FoxPro, теория отношений и др.
это у вас не понимание, и ответы на ваше же непонимание....
Из Ваших первых постов я понял, что Вы именно противопостовляете View и Select-SQL.

fox_kiv
считаю глупо курсор пихать в грид если есть view,

зачем нужен допотопный селект, если можно использовать представление,

Сегодня вью занял свою позицию, запрос отошел в сторону

Для конкретного запроса, послужившего темой данного топика это справедливо. Но в более общем случае я с этим не согласен. Отсюда и мои попытки объяснить. Извините, если Вы и так все это знаете.

fox_kiv2. Какие недостатки? Перечислите пожалуйста...
В принципе, в более старших версиях FoxPro исправлены некоторые чисто технические проблемы с использованием View. Поэтому остановлюсь на проблемах, связанных собственно с самой логикой View

-) Сброс изменений из View созданных на базе нескольких связанных таблиц при одновременном добавлении записей в несколько таблиц-источников
-) Формирование View с неопределенной структурой. В стандартном Select-SQL это решается макроподстановками. Для View - это неразрешимая проблема (частично решаемая разными "фокусами")
-) UNION

fox_kiv3.Конкретные решаемые задачи на тридцать записей можно сделать в екселе или аксесе на Худой Конец...

4. М-да, задачи бывают разные...
Это сразу и вопрос и ответ. Думаю, в пояснениях не нуждается.

fox_kiv5. Далеко... далеко не все можно решать в принципе, и через вью в том числе... такова жизнь...
Согласен. Я просто хотел сказать, что View - это своеобразная "надстройка" над Select-SQL. Как следствие, пришлось пожертвовать некоторыми возможностями Select-SQL.
...
Рейтинг: 0 / 0
А как обновить CURSOR без его перезагрузки?
    #32628490
__GUEST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати, хотел спросить а имеет ли смысл включать для курсора буффиризацию ? Ведь с курсором работает только один пользователь.
С вьюшко все понятно.
...
Рейтинг: 0 / 0
А как обновить CURSOR без его перезагрузки?
    #32628745
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__GUESTКстати, хотел спросить а имеет ли смысл включать для курсора буффиризацию ? Ведь с курсором работает только один пользователь.
С вьюшко все понятно.
Это зависит от конкретной задачи. Иногда нужно и такое чудо.
...
Рейтинг: 0 / 0
А как обновить CURSOR без его перезагрузки?
    #32628913
__GUEST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ, а можете привести пример, когда нужно делать буфферизацию курсора (т.б. врем. таблицы)
...
Рейтинг: 0 / 0
А как обновить CURSOR без его перезагрузки?
    #32628924
fox_kiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ[quot fox_kiv]Согласен. Я просто хотел сказать, что View - это своеобразная "надстройка" над Select-SQL. Как следствие, пришлось пожертвовать некоторыми возможностями Select-SQL.

а если вы пойдете дальше и заглянете в MS-SQL или в ORACLE к своему удивлению обнаружите что эта "своеобразная" надстройка не только существует вне FoxPro но и живет и процветает, порой беря на себя тяжести обработки мощных массивов информации. Более того, когда в Foxe появился select, многие программисты не знакомые с понятием запросов не восприняли это чудо и продолжали по старинке ставить фильтра, искать через sort, find и т.д. А было это все в том же 91м году...


История нас рассудила, и сегодня я участвую в дискуссии уже не защищая select, что отрадно самим фактом продвижения вперед программистической мысли....


пожертвовали или нет "некоторыми возможностями" select? может быть... но дело это поправимое, надеюсь фокс не помрет и будет развиваться далее в ногу с такими продуктами как INFORMIX, ORACLE, PROGRESS и др.
...
Рейтинг: 0 / 0
А как обновить CURSOR без его перезагрузки?
    #32629042
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__GUESTа можете привести пример, когда нужно делать буфферизацию курсора (т.б. врем. таблицы)
-) Если требуется определить какие данные в курсоре были изменены
-) Если время на создание курсора относительно велико. В этом случае дешевле сделать откат буфера, чем заново создавать курсор
-) Если курсор делается обновляемым. Аналог View, только создается программно через CursorSetProp()
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / А как обновить CURSOR без его перезагрузки?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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