Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
refresh представление хочу
|
|||
|---|---|---|---|
|
#18+
Такая незадача. База в свободных таблицах на файл-сервере. DBC содержит ЛОКАЛЬНЫЕ представления. Запросы в основном долгоиграющие. Вьюшки отображаются в гридах readonly, данные вводятся в диалогах. В таблицу изменения вносятся отдельной процедурой со всякими проверками. А вот как потом обновить запись в представлении (только текущую), чтоб показать ее в гриде и не делать requery() ? Слишком долго получается, а обновлять надо сразу ((( Понимаю, что это все не прогрессивно, но что сдали, тем и играем ((( Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2004, 16:08 |
|
||
|
refresh представление хочу
|
|||
|---|---|---|---|
|
#18+
Если сразу, то просто сделай REPLACE в Local View измененных данных. Сбросить флаг изменения буфера можно командой SetFldState() (для полей текущей записи), хотя это никак не повлияет на собственно содержимое буфера. Есть еще команда Refresh() - это аналог Requery(), но для конкретной записи в Local View. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2004, 16:17 |
|
||
|
refresh представление хочу
|
|||
|---|---|---|---|
|
#18+
2ВладимирМ Спасибо за совет. Надо мне внимательнее читать доку. Если я прав, то REFRESH() предпочтительнее для своих изменений, а REQUERY() для чужих. Причем последний лучше делать по требованию пользователя. Дело в том, что приложение спроектировано как переходный этап с FPD 2.6 на VFP+MS SQL. По замыслу работавшего до меня чела - вся работа с БД (открытие файлов, создание вьюшек, транзакции и триггеры) сидит в отдельном процедурном файле. Модули форм почти не придется переделывать - уважаю. Но пока все работает как файл-сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2004, 07:32 |
|
||
|
refresh представление хочу
|
|||
|---|---|---|---|
|
#18+
Повинен в крайней тупости, однако стремлюсь... Записи вьюшек не обновляются через REFRESH(). Send SQL Updates отключен - мне не нужно обновлять таблицы БД через View, для этого есть SQL. Рефреш не обязательно должен быть связан с обновлением записи, которое только что произвело приложение. Или представления вообще не обновить без этого ? Можно кидать камнями, так как наверняка всех достал ((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2004, 10:29 |
|
||
|
refresh представление хочу
|
|||
|---|---|---|---|
|
#18+
Физически, любое View - это результат выполнения команды Select-SQL. Т.е. это некая временная таблица физически расположенная на машине клиента и являющаяся результатом выполнения команды Select-SQL. Когда ты даешь команду Requery() или Refresh(), то реально ты просишь повторно выполнить команду Select-SQL. Разумеется, никакие изменения внесенные клиентом в этом случае не попадут в исходные таблицы. Просто будет удалена старая временная таблица и вместо нее будет создана новая. Send SQL Update - это прямо противоположная команда. Она передает данные от клиента на сервер теми же командами Update-SQL и Insert-SQL. А вообще-то подобные впросы проще проверить экспериментально. 5 минут экспериментов на собственном компе лучше, чем пару часов ожидания ответа в конфе. :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2004, 10:39 |
|
||
|
refresh представление хочу
|
|||
|---|---|---|---|
|
#18+
2ВладимирМ Я о том же, Send SQL Update включен - REFRESH() работает на 5, выключен - No update tables are specified. Use the Tables property of the cursor. Стыжусь своего ламерства, но дело принципа - причем тут update tables ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2004, 10:54 |
|
||
|
refresh представление хочу
|
|||
|---|---|---|---|
|
#18+
Какая версия FoxPro? На VFP6SP5 - без проблем. Есть SendSQLUpdate или нет - без разницы. Правда, в нем сама команда Refresh() глючная, но это к делу не относится. Попробуй так: TableRevert(.T.,.T.,"MyView") Refresh(1,"MyView") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2004, 11:10 |
|
||
|
refresh представление хочу
|
|||
|---|---|---|---|
|
#18+
Увы, не прокатило. А фокс 5-й, другого щас под рукой нет. У клиентов стоят рантаймы от 6-ки. Скорее всего глюки. Все-таки REPLACE в VIEW делать не хочется, нет гарантий наличия соответствующих временных переменных в нужный момент - потребуется существенная переделка кода. А решение с REFRESH указанной записи - это красиво и дешево. Буду копать его дальше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2004, 11:27 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=386&tid=1596815]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 364ms |

| 0 / 0 |
