|
|
#1 |
|
Участник
|
Нужно изменить значение неключевого поля(-ей) в некоторых записях. Задача-то несложная, но вопрос: чем лучше это делать?
Так: Код: SETRANGE(накладываем нужный фильтр);
IF FINDSET(TRUE, FALSE) THEN
REPEAT
Поле := Новое значение;
MODIFY;
UNTIL NEXT = 0Код: SETRANGE(накладываем нужный фильтр); MODIFYALL(Поле, Новое значение) Что скажете, спецы? Как будет грамотнее? |
|
|
|
|
#2 |
|
Участник
|
http://dynamicsuser.net/blogs/waldo/...deleteall.aspx
тут пишут, что в вашем случае быстрее будет работать modifyall |
|
|
|
|
#3 |
|
Участник
|
Будет ещё быстрее работать, если отфильтровать только те записи, которые требуется изменить, типа:
Код: SETFILTER(поле,'<>%1',Новое значение); Код: SETRANGE(накладываем нужный фильтр); SETFILTER(поле,'<>%1',Новое значение); IF NOT ISEMPTY THEN BEGIN MODIFYALL(поле, Новое значение); END; |
|
|
|
|
#4 |
|
Участник
|
А кто сказал, что интересует скорость выполнения?
Например при изменении с помощью MODIFYALL() не получится вызвать VALIDATE() изменяемого поля. |
|
|
|
|
#5 |
|
Участник
|
А еще MODIFYALL() не видит установленных в реке переменных.
То есть, если написано так Код: t36.SetMode(1);
t36.MODIFYALL("Posting Date", TODAY(), FALSE); |
|
|
|
|
#6 |
|
Участник
|
Ребята, всем Данке +
Приняла к сведению. |
|
|