手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>delphi>列表

手册中关于怎样使用TQuery 的误导

来源:互联网 作者:西部数码 时间:2008-04-09
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

Q:手册中关于怎样使用TQuery 的误导

A:用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, 相反, 为了减少不必要的浪费, 应该是保持DeActive。 所以代码应该如下:

Query1.ParamByName(''''ID'''').AsString := ''''001'''';
Query1.Open;
String := Query1.FieldByName(''''ID'''').AsString;
Query1.Close;

您在使用Query的时候要注意根据实际情况选择适当的方法, 不要被手册误导。

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!