能给初学者一点树(treeview)的数据库操作的例子吗,链接也行 谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 联系人数据库(原创)type PMyDataRec = ^TMyDataRec; TMyDataRec = record ID: string; IDP: string; GroupID: string; Mobile: string; end;const IMGMan = 0; IMGWoman = 1; IMGUnknown = 2;procedure TDM.AddContactInfoToTreeView(ATreeView: TTreeView); procedure ClearTreeViewItems(ATreeView: TTreeView); var Node: TTreeNode; begin Node := ATreeView.Items.GetFirstNode; while Node <> nil do begin if Node.Data <> nil then begin Dispose(Node.Data); end; Node := Node.GetNext; end; ATreeView.Items.Clear; end;var GroupID: string; MyDataRec: PMyDataRec; Node1, Node2, Node3, Node4: TTreeNode;begin ClearTreeViewItems(ATreeView); New(MyDataRec); Node1 := ATreeView.Items.Add(nil, '联系人'); MyDataRec.ID := ''; MyDataRec.IDP := ''; Node1.Data := MyDataRec; Node1.ImageIndex := IMGroot; Node1.SelectedIndex := IMGroot; with ADOQAddContactInfoToTreeView do begin ADOQGroup.Close; ADOQGroup.SQL.Clear; ADOQGroup.SQL.Add('Select * from Group1'); ADOQGroup.Open; while not ADOQGroup.Eof do begin New(MyDataRec); GroupID := ADOQGroup.FieldByName('GroupID').AsString; MyDataRec.ID := GroupID; MyDataRec.GroupID := GroupID; Node2 := ATreeView.Items.AddChildObject(Node1, ADOQGroup.FieldValues['Name'], MyDataRec); if not Node1.Expanded then Node1.Expanded := True; Node2.ImageIndex := IMGGROUP; Node2.SelectedIndex := IMGGROUP; ADOQCompany.Close; ADOQCompany.SQL.Clear; ADOQCompany.SQL.Add('Select distinct Company.ID as cid, Company.Name as cname from Company, UClient'); ADOQCompany.SQL.Add('Where (UClient.IDP Like Company.ID + ''%'') and (UClient.GroupID = :GroupID)'); ADOQCompany.Parameters.ParamByName('GroupID').Value := GroupID; ADOQCompany.Open; while not ADOQCompany.Eof do begin New(MyDataRec); MyDataRec.ID := ADOQCompany.FieldByName('cid').Value; Node3 := ATreeView.Items.AddChildObject(Node2, ADOQCompany.FieldValues['CName'], MyDataRec); if not Node2.Expanded then Node2.Expanded := True; Node3.ImageIndex := IMGCONTACT; Node3.SelectedIndex := IMGCONTACT; ADOQPerson.Close; ADOQPerson.SQL.Clear; ADOQPerson.SQL.Add('select distinct * from UClient'); ADOQPerson.SQL.Add('where (IDP Like :cid + ''%'') and (GroupID = :GroupID)'); ADOQPerson.Parameters.ParamByName('CID').Value := MyDataRec.ID; ADOQPerson.Parameters.ParamByName('GroupID').Value := GroupID; ADOQPerson.Open; while not ADOQPerson.Eof do begin New(MyDataRec); MyDataRec.ID := ADOQPerson.FieldValues['ID']; MyDataRec.IDP := ADOQPerson.FieldValues['IDP']; MyDataRec.Mobile := ADOQPerson.FieldValues['Mobile']; Node4 := ATreeView.Items.AddChildObject(Node3, ADOQPerson.FieldValues['Name'], MyDataRec); case ADOQPerson.FieldByName('Sex').AsInteger of 1: begin Node4.ImageIndex := IMGMan; Node4.SelectedIndex := IMGMan; end; 2: begin Node4.ImageIndex := IMGWoman; Node4.SelectedIndex := IMGWoman; end; else begin Node4.ImageIndex := IMGUnknown; Node4.SelectedIndex := IMGUnknown; end; end; ADOQPerson.Next; end; ADOQCompany.Next; end; ADOQGroup.Next; end; Close; end;end; 关于用fastmm检测内存泄漏的问题? outlook 发送邮件前进行加密 如何将字符转成ASCII码 在delphi中如何读取二进制文件? 关于Adostroedproc的简单问题,马上揭贴,在线等待!!! 怎么对齐文字 有关数据图表显示的问题,在线等候... help me delphi单元名不匹配如何解决! 关于timer的case语句求助!!!!!! 关于数据存储的问题? 重装系统后,系统目录下的文件及注册表中的系统部分是否会被安装程序用新的内容覆盖掉?
type
PMyDataRec = ^TMyDataRec;
TMyDataRec = record
ID: string;
IDP: string;
GroupID: string;
Mobile: string;
end;const
IMGMan = 0;
IMGWoman = 1;
IMGUnknown = 2;
procedure TDM.AddContactInfoToTreeView(ATreeView: TTreeView); procedure ClearTreeViewItems(ATreeView: TTreeView);
var
Node: TTreeNode;
begin
Node := ATreeView.Items.GetFirstNode;
while Node <> nil do
begin
if Node.Data <> nil then
begin
Dispose(Node.Data);
end;
Node := Node.GetNext;
end;
ATreeView.Items.Clear;
end;var
GroupID: string;
MyDataRec: PMyDataRec;
Node1, Node2, Node3, Node4: TTreeNode;
begin
ClearTreeViewItems(ATreeView);
New(MyDataRec);
Node1 := ATreeView.Items.Add(nil, '联系人');
MyDataRec.ID := '';
MyDataRec.IDP := '';
Node1.Data := MyDataRec;
Node1.ImageIndex := IMGroot;
Node1.SelectedIndex := IMGroot;
with ADOQAddContactInfoToTreeView do
begin
ADOQGroup.Close;
ADOQGroup.SQL.Clear;
ADOQGroup.SQL.Add('Select * from Group1');
ADOQGroup.Open;
while not ADOQGroup.Eof do
begin
New(MyDataRec);
GroupID := ADOQGroup.FieldByName('GroupID').AsString;
MyDataRec.ID := GroupID;
MyDataRec.GroupID := GroupID;
Node2 := ATreeView.Items.AddChildObject(Node1, ADOQGroup.FieldValues['Name'], MyDataRec);
if not Node1.Expanded then
Node1.Expanded := True;
Node2.ImageIndex := IMGGROUP;
Node2.SelectedIndex := IMGGROUP;
ADOQCompany.Close;
ADOQCompany.SQL.Clear;
ADOQCompany.SQL.Add('Select distinct Company.ID as cid, Company.Name as cname from Company, UClient');
ADOQCompany.SQL.Add('Where (UClient.IDP Like Company.ID + ''%'') and (UClient.GroupID = :GroupID)');
ADOQCompany.Parameters.ParamByName('GroupID').Value := GroupID;
ADOQCompany.Open;
while not ADOQCompany.Eof do
begin
New(MyDataRec);
MyDataRec.ID := ADOQCompany.FieldByName('cid').Value;
Node3 := ATreeView.Items.AddChildObject(Node2, ADOQCompany.FieldValues['CName'], MyDataRec);
if not Node2.Expanded then
Node2.Expanded := True;
Node3.ImageIndex := IMGCONTACT;
Node3.SelectedIndex := IMGCONTACT;
ADOQPerson.Close;
ADOQPerson.SQL.Clear;
ADOQPerson.SQL.Add('select distinct * from UClient');
ADOQPerson.SQL.Add('where (IDP Like :cid + ''%'') and (GroupID = :GroupID)');
ADOQPerson.Parameters.ParamByName('CID').Value := MyDataRec.ID;
ADOQPerson.Parameters.ParamByName('GroupID').Value := GroupID;
ADOQPerson.Open;
while not ADOQPerson.Eof do
begin
New(MyDataRec);
MyDataRec.ID := ADOQPerson.FieldValues['ID'];
MyDataRec.IDP := ADOQPerson.FieldValues['IDP'];
MyDataRec.Mobile := ADOQPerson.FieldValues['Mobile'];
Node4 := ATreeView.Items.AddChildObject(Node3, ADOQPerson.FieldValues['Name'], MyDataRec);
case ADOQPerson.FieldByName('Sex').AsInteger of
1:
begin
Node4.ImageIndex := IMGMan;
Node4.SelectedIndex := IMGMan;
end;
2:
begin
Node4.ImageIndex := IMGWoman;
Node4.SelectedIndex := IMGWoman;
end;
else
begin
Node4.ImageIndex := IMGUnknown;
Node4.SelectedIndex := IMGUnknown;
end;
end;
ADOQPerson.Next;
end;
ADOQCompany.Next;
end;
ADOQGroup.Next;
end;
Close;
end;
end;