请教高手, 如何用TREEVIEW显示一个数据库中的所有的表,同时每点一个表名则在F1BOOK中显示及修改所选中表, 在点另一个表前进行保存,最好有代码,---分好商量
解决方案 »
- vk_add的用法
- 套用一句广告词“这么多年,Delphi从没让我失望!”
- 关于文件搜索的问题和一个关于listview的问题 在线等!!!!
- 好域名,有需要的朋友进来一下。
- dbgrideh的安装的问题!
- 在quickrep中对于qrlabel的caption如何动态控制?
- 关于fastreport问题
- 大公司,好公司在招聘时很看中专业吗?非得是计算机相关吗?
- 请问我的数据库很大,用SELECT太慢!主要是有一个BLOB字段,SELECT的时,会产生一个临时文件,有没有更好的方法!!
- 送分大行动:那里有developer express的vcl下载?
- 如何将图标加入到状态栏的Statusbar1.Panels[1]中去?
- 问一下‘流’和Tlist的问题,谢谢!
procedure CreateSubTree(FNodeName: string; Node: TTreeNode = nil);
var
mLocalName: string;
TreeNode: TTreeNode;
Ads_Tmp: TADODataSet;
begin
ADS_Tmp := TADODataSet.Create(Self);
ADS_Tmp.Connection := ADOConnection1;
with ADS_Tmp do
try
Close;
CommandText := 'Select * from Type Where ParentID =' + FNodeName;
Open;
First;
while not Eof do
begin
mLocalName := FieldbyName('ID').Asstring;
TreeNode := TreeView.Items.AddChild(Node, FieldByName('Name').AsString);
CreateSubTree(mLocalName, TreeNode); // 此处循环递归
Next;
end;
finally
ADS_Tmp.Free;
end;
end;
begin
TreeView.Items.BeginUpdate;
TreeView.Items.Clear;
with TreeView.Items.Add(nil, '所有目录') do
begin
ImageIndex := 1;
SelectedIndex := 1;
end;
CreateSubTree('0', TreeView.Items[0]);
TreeView.Items.EndUpdate;
TreeView.Items[1].Selected := True;
end;
var
pstr1, pstr2 : ^string;
NodeTemp : TTreeNode;
begin
pstr1 := NodeParent.Data;
with QuerySource do
begin
close;
sql.Clear;
sql.Text:='SELECT key,xcode,xname FROM xzdm WHERE parent = ' + '''' + pstr1^ + '''';
open;
if isempty then exit;
NodeTemp := nil;
while not eof do
begin
new(pstr2);
pstr2^ := FieldByName('key').AsString;
NodeTemp := TreeView1.Items.AddChildObject(NodeParent,
trim(FieldByName('xname').AsString)+'('+fieldbyname('xcode').AsString+')', pstr2);
Next;
end;
end;
while NodeTemp <> nil do
begin
CreateTree(QuerySource, NodeTemp,treeview1);
NodeTemp := Nodetemp.getPrevSibling;
end;
end;procedure TMain.RootTree(treeview1:ttreeview);
var
NodeTemp : TTreeNode;
pstr : ^string;
Query:TADOQuery;
begin
Query:=TADOQuery.Create(self);
query.Connection:=BgConnection;
try
Treeview1.Items.BeginUpdate;
with query do
begin
SQL.Text :='select top 1 * from xzdm ';
open;
if isempty then exit;
NodeTemp := nil;
while not eof do
begin
new(pstr);
pstr^ := FieldByName('key').AsString;
NodeTemp :=treeview1.Items.AddObject(nil,
trim(FieldByName('xname').AsString)+'('+fieldbyname('xcode').AsString+')', pstr);
Next;
end;
end;
while NodeTemp <> nil do
begin
CreateTree(Query, NodeTemp,treeview1);
NodeTemp:=NodeTemp.getPrevSibling;
end;
treeview1.Items.EndUpdate;
finally
Query.Free;
end;
end;
您费心了!!