Вставляем новые записи через буфер

Для достижения поставленной задачи делаем следующее:

Table2.Insert;
Move(Table1.ActiveBuffer^,Table2.ActiveBuffer^,Table1.RecordSize);
{При необходимости назначаем новый первичный ключ}
Table2.FieldByName(’Primary Key’).AsWhatever := whatever;
Table2.Post;

если ты уверен в том, что дизактивация ключа не может случиться, то можно копировать это для дальнейшего использования:

DbiInsertRecord(Table2.Handle,dbiNOLOCK,Table1.ActiveBuffer);

На мой взгляд код совершенен однако если есть идеи по щению велкам в коменты, приятного дня ;)