Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
как нештатными средствами изменить значение oldval для поля в курсоре ?
|
|||
|---|---|---|---|
|
#18+
Есть SPT-курсор. В нем надо для одного из полей принудительно изменять значения oldval для одного из полей, чтобы tableupdate его подхватывала (я долго шел к этой необходимости, поверьте - надо). Как это сделать ? Если я делаю select mtable replace mfield with newval setfldstate("mfield",1,"mtable") то все равно oldval("mfield","mtable") возвращает старое значение. А как это правильно сделать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2004, 13:29 |
|
||
|
как нештатными средствами изменить значение oldval для поля в курсоре ?
|
|||
|---|---|---|---|
|
#18+
дык сразу после реплейса заапдейть таблицу и фсего делоф ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2004, 14:04 |
|
||
|
как нештатными средствами изменить значение oldval для поля в курсоре ?
|
|||
|---|---|---|---|
|
#18+
To Hel!Riser: Это понятно, но это приводит к передаче на сервер мусорных операторов типа update mtable set mfield = null. А оно надо ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2004, 15:17 |
|
||
|
как нештатными средствами изменить значение oldval для поля в курсоре ?
|
|||
|---|---|---|---|
|
#18+
Для одного поля это сделать невозможно. Минимальной неделимой единицей буфера является запись . Так что, либо смирись с "мусорными" UPDATE, либо откатывай буфер одной (текущей) записи по TableRevert(.F.). Кроме того, собсвенно сброс буфера можно делать не одной командой TableUpdate(), а также по одной записи за раз в цикле по GetNextModified() Ну, и наконец, можешь ручками формировать команду для сервера на основе сожержимого буфера и посылать ее черех SQLExec(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2004, 21:25 |
|
||
|
как нештатными средствами изменить значение oldval для поля в курсоре ?
|
|||
|---|---|---|---|
|
#18+
Hi strizh! В общем случае для этого надо разобрать внутренние структуры фокса - как он организует буфер, как его заполняет и т.п. - ну и потом через АПИ функции работы с памятью менять содержимое буфера. Только не жди советов - я сильно сомневаюсь что подобной информацией владеет хоть кто-то, кроме собственно разработчиков движка фокса (а они не дадут, ибо это явно закрытая информация), что данные структуры не меняются от версии к версии, что реализация подобного "вмешательства" в дела фокса не отразится пагубно на стабильности работы, и что вообще это будет сделать проще чем ПОЛНОСТЬЮ переписать твою программу, отказавшись от авто-обновлений (которые и делает фокс на основе OLDVAL, текущего значения полей в соответствии с WhereType) в пользу "ручных" команд. Если фокс свежий - используй CursorAdapter - там можно явно прописывать команды для обновления данных (указывая то что тебе надо, а не только OLDVAL()). Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2004, 00:42 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32846287&tid=1595161]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
17ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 252ms |
| total: | 430ms |

| 0 / 0 |
