Вставка новой записи через буфер
Falk0ner, вс, 06/07/2008 - 15:34.
Table2.Insert;
Move(Table1.ActiveBuffer^,Table2.ActiveBuffer^,Table1.RecordSize);
{При необходимости назначаем новый первичный ключ}
Table2.FieldByName('Primary Key').AsWhatever := whatever;
Table2.Post;
...если вы уверены в том, что нарушение ключа произойти не может, то можно вырезать это для дальнейшего использования:
Move(Table1.ActiveBuffer^,Table2.ActiveBuffer^,Table1.RecordSize);
{При необходимости назначаем новый первичный ключ}
Table2.FieldByName('Primary Key').AsWhatever := whatever;
Table2.Post;
DbiInsertRecord(Table2.Handle,dbiNOLOCK,Table1.ActiveBuffer);
...конечно, это "обходит" VCL, т.к., чтобы увидеть потом новую запись, необходимо сделать TTable.Refresh.
Взято с http://delphiworld.narod.ru
Отправить комментарий