我是初学者。各位大侠帮小弟看看下面的查询,速度太慢啊,当数据量很大时,帮小弟改改,谢谢拉
treeview1.Items.Clear;
treeview1.Items.Add(nil,'数据浏览');
query2.Close;
query2.SQL.Clear;
query2.SQL.Add('select Distinct nianyue from sysdb');
query2.Open;
While not query2.eof do
begin
Tlist:=treeview1.Items.AddChild(treeview1.Items[0],query2.fieldbyname('nianyue').asstring);
tlist.selectedindex:=1;
tlist.ImageIndex:=0;
query2.Next;
end;
query2.Close;
query2.SQL.Clear;
query2.SQL.Add('select * from sysdb');
query2.Open;
aaa: while not query2.Eof do
begin
for a:=0 to treeview1.items[0].count -1 do
if query2.FieldByName('nianyue').AsString=treeview1.Items[0].Item[a].Text then
begin
if bianhao<>query2.fieldbyname('bianhao').asstring then
begin
tlist:=treeview1.Items.AddChild(treeview1.Items[0].item[a],query2.fieldbyname('bianhao').AsString );
tlist.SelectedIndex:=2;
tlist.ImageIndex:=1;
bianhao:=query2.fieldbyname('bianhao').asstring;
end;
if bianhao=query2.fieldbyname('bianhao').asstring then
begin
bianhao:=query2.fieldbyname('bianhao').asstring;
query2.Next;
goto aaa;
end;
end;
query2.Next;
end;
treeview1.Items.Clear;
treeview1.Items.Add(nil,'数据浏览');
query2.Close;
query2.SQL.Clear;
query2.SQL.Add('select Distinct nianyue from sysdb');
query2.Open;
While not query2.eof do
begin
Tlist:=treeview1.Items.AddChild(treeview1.Items[0],query2.fieldbyname('nianyue').asstring);
tlist.selectedindex:=1;
tlist.ImageIndex:=0;
query2.Next;
end;
query2.Close;
query2.SQL.Clear;
query2.SQL.Add('select * from sysdb');
query2.Open;
aaa: while not query2.Eof do
begin
for a:=0 to treeview1.items[0].count -1 do
if query2.FieldByName('nianyue').AsString=treeview1.Items[0].Item[a].Text then
begin
if bianhao<>query2.fieldbyname('bianhao').asstring then
begin
tlist:=treeview1.Items.AddChild(treeview1.Items[0].item[a],query2.fieldbyname('bianhao').AsString );
tlist.SelectedIndex:=2;
tlist.ImageIndex:=1;
bianhao:=query2.fieldbyname('bianhao').asstring;
end;
if bianhao=query2.fieldbyname('bianhao').asstring then
begin
bianhao:=query2.fieldbyname('bianhao').asstring;
query2.Next;
goto aaa;
end;
end;
query2.Next;
end;
解决方案 »
- Delphi如何抛出异常??千万别说用Raise
- delphi被卖了,路该怎么走?
- 在线等待 20分 delphi7.0中 怎么安装mwedit 0.92a 第三方控件啊
- 在一个窗口中打开另一个窗口时,如何能在任务栏再生成一个任务?
- 一页分成两列打印,打印的数据类型相同但类容不同,如:左边是狗胜的信息右边是二娃的信息
- 求3DES加密算法(CBC模式,采用PKCS5-Padding填充方式)
- 急急急急,非常急,一个关于ado登陆的问题,怎么也没明白………………在线等待!。(菜鸟的烦恼)
- 请帮忙找工作
- 你知道吗?
- Treenode的问题!
- 请问delphi能否与VC,VB兼容使用?
- 关于线程编程中资源访问的问题???急
treeview1.Items.BeginUpdate;
try
While not query2.eof do
begin
Tlist:=treeview1.Items.AddChild(treeview1.Items[0],query2.fieldbyname('nianyue').asstring);
tlist.selectedindex:=1;
tlist.ImageIndex:=0;
query2.Next;
end;
finally
treeview1.Items.EndUpdate;
end;
是这样显示的
+……2001年1月
……2001年1月1日11:12:13
……2001年1月1日11:13:15
……2001年1月2日20:14:10
。。
+……2001年2月
……2001年2月1日1:12:20
按这种格式一直显示下去我改了循环没有用goto语句还是很慢啊
你看csdn的树状图就是这样的