28.09.2006, 15:59 | #1 |
Участник
|
Копирование строк таблицы с помощью DictTable
прочитал:
манипуляции с таблицами Можно ли имея только название(имя) таблицы добавить в неё запись? т.к. мне необходимо копировать строки таблиц, возникла идея использовать один метод класса для дублирования записей любых таблиц: Код: static common copy(int _tablenum, int _countField, // количество полей recid _recid) { DictTable dt = new DictTable(_tablenum); int i,insertMethodNum; FieldId fieldId; Common record, newrecord; ; if(dt.fieldCnt()<_countField) throw error(''); record = dt.makerecord(); select firstonly record where record.recid == _recid; newrecord = dt.makeRecord(); for(i=1;i<=_countField;i++) { fieldId = dt.fieldCnt2Id(i); newrecord.(fieldId) = record.(fieldId); } return newrecord; } я изменяю значения нескольких полей, которые должны быть отличными от оригинала и вставляю строку... Код: myTable.Data(RecordCopy::Copy(tablenum(myTable),20,recId)); myTable.TransDate = systemdateget(); ... myTable.Insert(); на сколько корректен код метода? каким образом, если возможно, использовать orig(), что то типа record.orig().(fieldId), для получения значения до изменения? |
|