SQL.Text的赋值写在循环外,改用参数的方式
解决方案 »
- 如何编程取消IE7中设置的代理服务器?
- 没有兴趣写代码,今天竟然在csdn上呆了一天,不停的F5
- 文字游戏
- 如何将real类型的数据转换成integer类型?
- 带星的高手一定么帮助我呀!!!!关于一对多关系表的查询问题,急!!!!!!!!!!
- 用了TQRCompositeReport后怎么让每个加入的报表都从新的页开始打印?
- 刚收到一封邮件,说我被评上Borland Delphi专家,不知是否确实,先散分再说!
- 亟待解决的问题!
- 取出五个数中的最大数,用什么算法最快?
- agent 中如何定义右键菜单触发事件?
- 本人无工作,在家闲着无事,开发了一个能处理DBGRIDEH多表题头的例程,其自身的导出EXCEL不能处理多表题头!请大家多多指教!
- 高手请进
其他结点在Expanding中创建。
其他结点在Expanding中创建。
其他结点在Expanding中创建。
不过你最好在Formcreate的时间里,加进度条之类的东西,让界面更友好一些。
排序,这样建树时就可以按照先根遍历的顺序来建,效率还不错。我做过
相似的优化。.cn,可以写邮件给我,
diary_month:integer;
diary_month_id:integer;
diary_day:integer;
begin
//开始加载树型菜单
//第一层菜单
try
YearQuery.Close;
YearQuery.SQL.Clear;
YearQuery.SQL.Text:='select * from diary_year ordery by diary_year';
YearQuery.Open;
MonthQuery.Close;
MonthQuery.SQL.Clear ;
MonthQuery.SQL.Text := 'select * from diary_month order by year_id,diary_month';
MonthQuery.Open;
DayQuery.Close;
DayQuery.SQL.Clear ;
DayQuery.SQL.Text := 'select * from diary_day order by month_id,diary_day';
DayQuery.Open;
except
ShowMessage('查询出错');
exit;
end;
while not YearQuery.Eof do
begin
diary_year:=yearQuery.Fieldbyname('diary_year').Value;
OneNode := Treeview1.Items.Add(nil,inttostr(diary_year)+'年');
MonthQuery.filter:=' year_id ='+inttostr(diary_year);
MonthQuery.filtered:=false;
MonthQuery.Filtered:=true;
MonthQuery.first;
while not MonthQuery.Eof do
begin
diary_month := MonthQuery.Fieldbyname('diary_month').Value;
diary_month_id := MonthQuery.FieldByName('id').Value ;
TwoNode := Treeview1.Items.AddChild(OneNode,inttostr(diary_year)+'年'+inttostr(diary_month)+'月');
DayQuery.filter:=' month_id ='+inttostr(diary_month_id);
DayQuery.filtered:=false;
DayQuery.Filtered:=true;
DayQuery.first; While not DayQuery.Eof do
begin
diary_day := DayQuery.FieldByName('diary_day').Value;
ThreeNode := Treeview1.Items.AddChild(TwoNode,inttostr(diary_year)+'年'+inttostr(diary_month)+'月'+inttostr(diary_day)+'日');
DayQuery.Next;
end;
MonthQuery.Next;
end;
YearQuery.Next;
end;
end;