Показать сообщение отдельно
Старый 15.08.2007, 10:28   #2  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Цитата:
Сообщение от VasVovec Посмотреть сообщение
Что то я из справки не очень понял про эту функцию.
Если у меня в первичном ключе к примеру 5 полей и мне надо у записи изменить значение одного из них,
то мне в этой функции надо всеравно перечислить все 5 значений которые примут поля ключа?

Тобишь примерно так должно выглядеть изменение значения 3 поля ключа?

Код:
фильтрация
IF SomeRecord.FIND('-') THEN
  WITH SomeRecord DO
	REPEAT
	  RENAME("Key1","Key2",NewValue,"Key4","Key5");
	  UNTIL SomeRecord.NEXT = 0;
Именно так. При этом поменяется первичный ключ у текущей записи. При этом следующая запись после переименовки будет равна следующей записи до переименовки.
SomeRecord. RENAME("Key1","Key2",NewValue,"Key4","Key5");

Если ты хочешь поменять только одно поле (и при этом новое значение выходит за диапазон фильта), то можно использовать копирование ссылки в новую записть и потом изменять что нужно только у этой записи.
Пример "GenJnlLine.COPY(Rec);" в 13 кодеюните.

P.S. Хотите увеличить производительность - не используйте RENAME, потому что при вызове данной команды производится проверка связей всех полей по все таблице (проверено).