прочитал:
манипуляции с таблицами
Можно ли имея только название(имя) таблицы добавить в неё запись?
т.к. мне необходимо копировать строки таблиц, возникла идея использовать один метод класса для дублирования записей любых таблиц:
Код:
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), для получения значения до изменения?