|
@@ -0,0 +1,62 @@
|
|
|
+unit DbTreeDm;
|
|
|
+
|
|
|
+interface
|
|
|
+
|
|
|
+uses
|
|
|
+ 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;
|
|
|
+
|
|
|
+implementation
|
|
|
+
|
|
|
+uses
|
|
|
+ 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.
|