DbTreeDm.pas 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. unit DbTreeDm;
  2. interface
  3. uses
  4. SysUtils, Classes, sdDB, sdProvider, DB, ADODB, sdIDTree;
  5. type
  6. TDbTreeData = class(TDataModule)
  7. acDbTree: TADOConnection;
  8. sdpDbTree: TsdADOProvider;
  9. sddDbTree: TsdDataSet;
  10. sdvDbTree: TsdDataView;
  11. private
  12. FDbTree: TsdIDTree;
  13. procedure LoadDbTree;
  14. procedure OpenDbTree(const AFileName, ATableName: string);
  15. public
  16. constructor Create(const AFileName, ATableName: string);
  17. property DbTree: TsdIDTree read FDbTree;
  18. end;
  19. implementation
  20. uses
  21. Connections;
  22. {$R *.dfm}
  23. { TDbTreeData }
  24. constructor TDbTreeData.Create(const AFileName, ATableName: string);
  25. begin
  26. inherited Create(nil);
  27. OpenDbTree(AFileName, ATableName);
  28. LoadDbTree;
  29. end;
  30. procedure TDbTreeData.LoadDbTree;
  31. begin
  32. FDbTree := TsdIDTree.Create;
  33. FDbTree.KeyFieldName := 'ID';
  34. FDbTree.ParentFieldName := 'ParentID';
  35. FDbTree.NextSiblingFieldName := 'NextSiblingID';
  36. FDbTree.DataView := sdvDbTree;
  37. end;
  38. procedure TDbTreeData.OpenDbTree(const AFileName, ATableName: string);
  39. begin
  40. acDbTree.ConnectionString := Format(SAdoConnectStr, [AFileName]);
  41. acDbTree.Open;
  42. sdpDbTree.TableName := ATableName;
  43. sdpDbTree.Connection := acDbTree;
  44. sddDbTree.Open;
  45. sdvDbTree.Open;
  46. end;
  47. end.