设为首页
收藏本站
开启辅助访问
切换到窄版
登录
立即注册
中问网首页
我的收藏
站长博客
搜索
搜索
本版
帖子
用户
第一问答网
»
论坛
›
中问网
›
问答
›
手册中关于怎样使用TQuery 的误导
返回列表
发新帖
手册中关于怎样使用TQuery 的误导
[复制链接]
11
|
0
|
2009-1-30 06:28:38
|
显示全部楼层
|
阅读模式
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的时候要注意根据实际情况选择适当的方法, 不要被手册误导。
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
千问
主题
0
回帖
4882万
积分
论坛元老
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
积分
48824836
加好友
发消息
回复楼主
返回列表
问答
热门排行