手册中关于怎样使用TQuery 的误导 |
|
wnhoo
高階會員 發表:75 回覆:443 積分:198 註冊:2003-04-22 發送簡訊給我 |
用Delphi开发数据库时经常会用到TQuery手册中有很多关于它的例子,大致结构如下:
Query1.Close;
Query1.ParamByName(’ID’).AsString := ’001’;
Query1.Open; String := Query1.FieldByName(’ID’).AsString;
很多用户根据这段例子开发时会遇到速度慢,资源耗用多,甚至引发资源不足的异常。 这是为什么呢?
其实是手册的例子有些片面,误导了大家。 Delphi有一个重要的特性是DB aware,把DBGrid与Query连接在一起,Query的结果集就会自动的显示在DBGrid中。 为了保证DBGrid总显示查询结果,需要Query总保持Active。 当修改Query的查询条件时,先关闭Query,修改完查询条件以后再打开它。 这就是上面代码的含义。
*********************************************
问题是,当Query不和DB aware组件连接时,比如在计算字段的事件中取其它表的内容,应该怎样写代码。
这时候[不]需要让Query保持Active
相反,为了减少不必要的浪费,应该是保持Active。 所以代码应该如下:
Query1.ParamByName(’ID’).AsString := ’001’;
Query1.Open;
String := Query1.FieldByName(’ID’).AsString;
Query1.Close;
您在使用Query的时候要注意根据实际情况选择适当的方法,不要被手册误导。 风花雪月 e梦情缘
------
风花雪月 e梦情缘 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |