25.08.2006, 10:55 | #1 |
Участник
|
Помогите плиз.
В таблице G/L Account, переименовываю записи, если запустить повторно, то переименовавается только 1 запись IF FIND('-') THEN REPEAT IF "No. 2"<>'' THEN BEGIN No_Temp:="No."; RENAME("No. 2"); "No. 2":=No_Temp; MODIFY(TRUE); END; UNTIL NEXT=0; |
|
25.08.2006, 11:02 | #2 |
Участник
|
Вероятно, дело в том, что после переименования записей "сбивается" последовательное их прохождение в порядке первичного ключа.
Заполните лучше временную табличку - копию G/L Account и сделайте цикл по ней, а переименовывайте в настоящей. |
|
25.08.2006, 11:05 | #3 |
Участник
|
Большое спасибо, только вот загвозка, никогда не делал временную таблицу, можно пример
|
|
25.08.2006, 11:15 | #4 |
Участник
|
Да, в общем-то, все проще некуда - у переменной типа Record есть свойство Temporary. Получится таблица с теми же полями, но заполнять вы ее можете чем хотите, не трогая содержимое базы.
|
|
25.08.2006, 11:26 | #5 |
Участник
|
Наверно сегодня я туплю, ничего не получилось
|
|
25.08.2006, 11:33 | #6 |
Участник
|
Объявите две переменные, допустим GLAcc и tmpGLAcc - эта временная.
Заполните временную табличку tmpGLAcc записями из GLAcc. Затем организуйте цикл такой, как вы написали, но по таблице tmpGLAcc. В цикле находите соответствующую запись из GLAcc и переименовывайте ее. |
|
25.08.2006, 11:34 | #7 |
Участник
|
Ключ надо сменить на другой - чтобы не было ключа в поле который меняется
|
|
25.08.2006, 11:34 | #8 |
Участник
|
Большое спасибо
|
|
25.08.2006, 11:38 | #9 |
Участник
|
|
|