Решил развлечься малость. Вот метод, который копирует не одну строку, а всю таблицу. Может кому сгодится.
P.S. Работает весьма быстро
PHP код:
/** Копирует все данные из таблицы _fromTable в одноименные поля _toTable */
static Common cloneTable(str _fromTable, str _toTable)
{
DictTable dictTable1 = new DictTable(tableName2Id(_toTable));
DictTable dictTable2 = new DictTable(tableName2Id(_fromTable));
int i;
int t2FieldId;
str t1FieldId;
str fields;
str copyJob = "Common testTmp()\n{\n%1 fromTable;\n%2 toTable;\n;\n INSERT_RECORDSET toTable (%3) select %3 from fromTable;\n return toTable;\n }"
;
for (i = 1;i <= dictTable2.fieldCnt();i++)
{
t1FieldId = dictTable2.fieldName(dictTable2.fieldCnt2Id(i));
t2FieldId = dictTable2.fieldCnt2Id(i);
if (dictTable1.fieldName2Id(t1FieldId) && !isSysId(t2FieldId))
fields = fields ? fields + ", " + t1FieldId : t1FieldId;
}
return runbuf(strfmt(copyJob, _fromTable, _toTable, fields));
}