程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> tree從一個表復制到另一個表

tree從一個表復制到另一個表

編輯:Delphi
由於 TREE從源表復制到目標表的ID號與PARENT會變化,故不能單純的復制數據,還要將ID與PARENT的結構關系復制到目標表。
  因此我們用遞歸操作。
  由於 myquery 的數據會變動,我們要實時創建myquery 。
  下面是 Delphi tree 從一個表復制到另一個表 的遞歸源碼:
  Procedure Tfrm_SysDepasManager.CopyTree(socParent, desParent: integer); //樹遞歸復制過程
  Var
  myquery: TADOQuery;
  mysoc, mydes: integer;
  Begin
  myquery := Tadoquery.Create(Nil);
  Try
  myquery.Connection := frmdata.ADOConnection1;
  myquery.Active := false;
  myquery.SQL.Clear;
  myquery.SQL.Add('select * from LCConstDepa where parent=' + inttostr(socParent));
  myquery.Active := true;
  //插記錄
  While Not myquery.Eof Do
  Begin
  mysoc := myquery.FIEldByName('ID').AsInteger;
  ReDataSet2.Append;
  ReDataSet2.FIEldByName('shlid').AsInteger := Syspublic.LoginSchoolID;
  ReDataSet2.FieldByName('name').AsString := myquery.FIEldByName('name').AsString;
  ReDataSet2.FieldByName('pinyin').AsString := myquery.FIEldByName('pinyin').AsString;
  ReDataSet2.FIEldByName('parent').AsInteger := desParent;
  ReDataSet2.Post;
  mydes := ReDataSet2.FIEldByName('ID').AsInteger;
  CopyTree(mysoc, mydes);
  myquery.Next;
  End;
  Finally
  myquery.Free;
  End;
  End;
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved