UniDAC 的 RecordCount 属性注意事项
2015-09-18 10:00
393 查看
一直以来都是用UniDAC作为数据库查询组件,而一般的写法都是这样:
今天突然发现一个问题,明明数据库里存在近百条记录,但只查出来了25条,仔细检查了代码,没有问题啊,于是又检查了UniDAC UniQuery的属性,发现有这样一个属性: FetchRows,而且默认值是25!肯定是这里的问题了,帮助里搜了一下这个属性,帮助解释如下:
可见这个属性是为了性能考虑的,既然默认设置成25,肯定是最佳设置了,还是不改为何,于是寻求其他解决办法,网上又搜到了这样一个解释:
于是,我试着把QueryRecCount属性设置为true,问题解决了,showmessage了一下recordcount,不再是25了,已经是正确的行数了。为了找到权威的解释,又搜了一下帮助文档,解释如下:
特别是这一句:Used for TCustomDADataSet to perform additional query to get the record count for this SELECT, so the RecordCount property reflects the actual number of records.
UniQuery_sqlite.close; UniQuery_sqlite.SQL.Clear; UniQuery_sqlite.SQL.Add('SELECT * FROM TABLE'); try UniQuery_sqlite.Open; except { TODO : 异常捕获 } end; //循环出所有记录 for i := 0 to UniQuery_sqlite.RecordCount - 1 do begin //.... UniQuery_sqlite.Next; end;
今天突然发现一个问题,明明数据库里存在近百条记录,但只查出来了25条,仔细检查了代码,没有问题啊,于是又检查了UniDAC UniQuery的属性,发现有这样一个属性: FetchRows,而且默认值是25!肯定是这里的问题了,帮助里搜了一下这个属性,帮助解释如下:
可见这个属性是为了性能考虑的,既然默认设置成25,肯定是最佳设置了,还是不改为何,于是寻求其他解决办法,网上又搜到了这样一个解释:
If you set the QueryRecCount option to True, TUniTable executes SELECT COUNT() query automatically when you open the table, and assigns the correct value to the RecordCount property.
于是,我试着把QueryRecCount属性设置为true,问题解决了,showmessage了一下recordcount,不再是25了,已经是正确的行数了。为了找到权威的解释,又搜了一下帮助文档,解释如下:
特别是这一句:Used for TCustomDADataSet to perform additional query to get the record count for this SELECT, so the RecordCount property reflects the actual number of records.
相关文章推荐
- 碎片和活动之间进行通信
- 对代理模式中代理方法实现和调用的简单了解
- 部署一个用于测试和开发的复制集
- 部署一个用于测试和开发的复制集
- Fastcgi配置
- Fastcgi配置
- 面对 20 亿行代码,Google 如何管理?
- 意大利军方切换到 LibreOffice
- TF-IDF与余弦相似性的应用(二):找出相似文章(转)
- 关于数据科学,书上不曾提及的三点经验
- Android性能优化(四),网络优化 && 耗电量优化
- Swift 2.0学习笔记(Day 14)——字符串的插入、删除和替换
- git的使用
- 可以把PPT转为PDF的转换器
- hdu5435 数位dp(大数的处理)
- codis扩容报错:[error] READONLY You can't write against a read only slave
- angularJS中批量提交请求的batch.js(2)
- sysbench安装与使用
- 各linux文件系统比较
- django 1.8 官方文档翻译:13-6 分页