Часто встречается такая задача, чтобы не искать долго по интернетам, решил вывести её решение в отдельный пост. Решение задачи базируется на удобной возможности MySQL Insert… Select…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
//---------------------------------Копирование записей в БД----------------------------- function CopyRecordInDB(SourceID: integer): integer; var qSelectInsert: TFDQuery; qGetKey: TFDQuery; begin qSelectInsert := TFDQuery.Create(nil); try qSelectInsert.Connection := FDConnection; qSelectInsert.SQL.Text:= 'INSERT INTO `treeview_db`.`tree`'+ '(`IdParent`,'+ '`Name`,'+ '`Index`,'+ '`isChecked`,'+ '`IsExpanded`,'+ '`Level`,'+ '`IsFolder`)'+ 'SELECT'+ '`IdParent`,'+ '`Name`,'+ '`Index`,'+ '`isChecked`,'+ '`IsExpanded`,'+ '`Level`,'+ '`IsFolder`'+ ' from'+ '`treeview_db`.`tree` where id = :id' ; qSelectInsert.Params.ParamValues['id'] := SourceId; qSelectInsert.ExecSQL; finally qSelectInsert.Free; end; end; |