delphi利用指针,结构或component存储数据表数据
2009-03-18 12:05
591 查看
方法一: component 释放时候有自动垃圾回收功能
type
TDepartMent = class(TComponent)
private
FName: string;
FID: string;
FPARENT_ID: string;
FCompanyID: string;
FType: TDepartType;
FWareID: string;
FEnabled: Boolean;
public
property DepartmentName: string read FName write FName;
property ID: string read FID write FID;
property PARENT_ID: string read FPARENT_ID write FPARENT_ID;
property CompanyID: string read FCompanyID write FCompanyID;
property DepartmentType: TDepartType read FType write FType;
property WareID: string read FWareID write FWareID;
property Enabled: Boolean read FEnabled write FEnabled;
constructor Create(AOwner: TComponent); override;
end;
procedure LoadNodes(ParetNode: TTreeNode);
var
Node : TTreeNode;
CDS : TClientDataSet;
DepartMent : TDepartMent;
begin
CDS := TClientDataSet.Create(nil);
CDS.XMLData := ADataSet.XMLData;
CDS.Filter := 'PARENT_ID=' + '''' + TDepartMent(ParetNode.Data).ID + '''';
CDS.Filtered := False;
CDS.Filtered := True;
with CDS do
begin
First;
while not EOF do
begin
DepartMent := TDepartMent.Create(ATree);
DepartMent.ID := FieldByName('DEPA_ID').AsString;
DepartMent.PARENT_ID := FieldByName('PARENT_ID').AsString;
DepartMent.DepartmentName := FieldByName('NAME').AsString;
DepartMent.CompanyID := FieldByName('COMP_ID').AsString;
DepartMent.DepartmentType := dtDepartment;
DepartMent.FWareID := FieldByName('WARE_EXTENDED_ID').AsString;
Node := ATree.Items.AddChild(ParetNode, DepartMent.DepartmentName);
Node.Data := DepartMent;
if DepartMent.ID = OldID then
ATree.Selected := Node;
LoadNodes(Node);
Node.Expanded := False;
Next;
end;
end;
CDS.Free;
end;
type
TDepartMent = class(TComponent)
private
FName: string;
FID: string;
FPARENT_ID: string;
FCompanyID: string;
FType: TDepartType;
FWareID: string;
FEnabled: Boolean;
public
property DepartmentName: string read FName write FName;
property ID: string read FID write FID;
property PARENT_ID: string read FPARENT_ID write FPARENT_ID;
property CompanyID: string read FCompanyID write FCompanyID;
property DepartmentType: TDepartType read FType write FType;
property WareID: string read FWareID write FWareID;
property Enabled: Boolean read FEnabled write FEnabled;
constructor Create(AOwner: TComponent); override;
end;
procedure LoadNodes(ParetNode: TTreeNode);
var
Node : TTreeNode;
CDS : TClientDataSet;
DepartMent : TDepartMent;
begin
CDS := TClientDataSet.Create(nil);
CDS.XMLData := ADataSet.XMLData;
CDS.Filter := 'PARENT_ID=' + '''' + TDepartMent(ParetNode.Data).ID + '''';
CDS.Filtered := False;
CDS.Filtered := True;
with CDS do
begin
First;
while not EOF do
begin
DepartMent := TDepartMent.Create(ATree);
DepartMent.ID := FieldByName('DEPA_ID').AsString;
DepartMent.PARENT_ID := FieldByName('PARENT_ID').AsString;
DepartMent.DepartmentName := FieldByName('NAME').AsString;
DepartMent.CompanyID := FieldByName('COMP_ID').AsString;
DepartMent.DepartmentType := dtDepartment;
DepartMent.FWareID := FieldByName('WARE_EXTENDED_ID').AsString;
Node := ATree.Items.AddChild(ParetNode, DepartMent.DepartmentName);
Node.Data := DepartMent;
if DepartMent.ID = OldID then
ATree.Selected := Node;
LoadNodes(Node);
Node.Expanded := False;
Next;
end;
end;
CDS.Free;
end;
相关文章推荐
- mysql 利用mysqldump 导入导出表结构、数据、存储过程及函数
- 数据结构之图-邻接表、及指针数组,链式存储
- 若用链表存储一棵二叉树时,每个节点除数据域外,还有指向左孩子和右孩子的两个指针,在这种存储结构中,n歌节点的二叉树共有2N个指针域,其中有N-1个指针域存放了地址,有N+1个指针是空指针。
- 如何利用ccform自定义表单来增加自己的控件,关于Sys_FrmEle表结构与数据存储设计?
- 【数据结构作业三】利用栈(以顺序栈作存储结构)实现二、十和十六进制转换
- 数据结构问题---树的存储结构和运算
- 第3周课后实践·阅读程序(2)-利用指针访问私有数据成员
- mysql利用存储过程批量插入数据
- 一种理想的在关系数据库中存储树型结构数据的方法
- 线性结构的两种常见应用之一 栈 (存储数据的结构)
- 数据结构——线性表之顺序存储学习
- 一种理想的在关系数据库中存储树型结构数据的方法 - Just do it - 博客园
- 数据结构之---C++语言实现图的十字链表存储表示
- 零零散散学算法之详解几种数据存储结构
- 【数据结构】顺序表的两种存储形式
- 一种理想的在关系数据库中存储树型结构数据的方法
- redis 存储数据结构
- 在java控制台中编写电话本,利用hashmap存储数据
- 数据结构之顺序存储的栈的实现
- 树形结构的数据存储和数据库表设计