| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 | unit DbTreeDm;interfaceuses  SysUtils, Classes, sdDB, sdProvider, DB, ADODB, sdIDTree;type  TDbTreeData = class(TDataModule)    acDbTree: TADOConnection;    sdpDbTree: TsdADOProvider;    sddDbTree: TsdDataSet;    sdvDbTree: TsdDataView;  private    FDbTree: TsdIDTree;    procedure LoadDbTree;    procedure OpenDbTree(const AFileName, ATableName: string);  public    constructor Create(const AFileName, ATableName: string);    property DbTree: TsdIDTree read FDbTree;  end;implementationuses  Connections;{$R *.dfm}{ TDbTreeData }constructor TDbTreeData.Create(const AFileName, ATableName: string);begin  inherited Create(nil);  OpenDbTree(AFileName, ATableName);  LoadDbTree;end;procedure TDbTreeData.LoadDbTree;begin  FDbTree := TsdIDTree.Create;  FDbTree.KeyFieldName := 'ID';  FDbTree.ParentFieldName := 'ParentID';  FDbTree.NextSiblingFieldName := 'NextSiblingID';  FDbTree.DataView := sdvDbTree;end;procedure TDbTreeData.OpenDbTree(const AFileName, ATableName: string);begin  acDbTree.ConnectionString := Format(SAdoConnectStr, [AFileName]);  acDbTree.Open;  sdpDbTree.TableName := ATableName;  sdpDbTree.Connection := acDbTree;  sddDbTree.Open;  sdvDbTree.Open;end;end.
 |