起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: xhsoft

【结】关闭数据集的速度

[复制链接]
发表于 2008-8-12 16:25:15 | 显示全部楼层
我哪句话的意思给你提示用Query?用哪个你自己来决定,Query 可以,标准数据集也可以
回复 支持 反对

使用道具 举报

发表于 2008-8-12 17:01:26 | 显示全部楼层
为了提高速度,建议数据集不要自动打开(可以在第一次查询时,打开相应数据集)。以下一些方法可控制数据集的打开或关闭;
(1)、由文档控制:设置文档(例如:表单文档、表格文档等)的自动打开数据集
(AutoOpenDataSet)属性。如果该属性为True(默认值),则当文档打开时就会自动的打开
文档所用到的所有数据集。为False 时,文档打开时则不去打开自己用到的数据集,当然,
也不会在文档打开时去关闭已经打开的数据集。
􀁺 (2)、由业务信息控制:使用业务信息(Info)中的自动打开数据集(DataSetPolicies)属
性来设置当业务信息打开时,业务信息中的哪些业务数据集也要随之打开。
􀁺 (3)、由信息策略控制:使用信息策略(InfoPolicy)中的数据集策略(DataSets)属性来
设置目标信息中的各数据集是否自动打开(AutoOpen)。如果是自动打开,则会在信息打开
时打开数据集。
􀁺 (4)、由代码控制:如果以上几种办法都没有设置默认打开数据集,就要通过代码的方式
控制数据集的打开和关闭。将数据集的Active 属性设置为True,或调用数据集的Open 方法
都可以在运行时打开数据集。
DataSet1.Active := True; 或
DataSet1.Open;
将数据集的Active 属性设置为False,或调用数据集的Close 方法则关闭数据集。
DataSet1.Active := False; 或
DataSet1.Close;”
回复 支持 反对

使用道具 举报

发表于 2008-8-12 18:04:35 | 显示全部楼层
查询大数据量报表时,可以用sqlfilter或者userfilter为数据集设置一个1<>1的条件。保证不从服务端取无用的数据。
或者参考楼上建议,先不打开数据集,在作查询时,设置数据集的sqlfilter或者userfilter,然后再打开数据集
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-13 09:10:37 | 显示全部楼层
怎么能让它不自动打开
回复 支持 反对

使用道具 举报

发表于 2008-8-13 09:15:12 | 显示全部楼层
看12楼。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-13 10:01:30 | 显示全部楼层
1\在表单中设置不自动打开,不符合我们的要求
2\下面的close.调置我们用过,不快
回复 支持 反对

使用道具 举报

发表于 2008-8-13 11:17:37 | 显示全部楼层
4楼和7楼满足不了你嘛?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-13 11:21:23 | 显示全部楼层
直接给数据集赋SQL语句

这句是什么意思,怎么给数据集赋SQL,代码,还是设置中
回复 支持 反对

使用道具 举报

发表于 2008-8-13 11:26:32 | 显示全部楼层
就是代码修改数据集的SQL语句,
例如
dDataSet.DataSet.Close;
TSqlDataSet(dDataSet.DataSet).SQL.Text  := 'select * from SJB11 Where ID ='''+  mDataSet.DataSet.FieldByName('ID').AsString+ '''';
dDataSet.DataSet.open;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-13 11:37:11 | 显示全部楼层
结了吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-20 18:56 , Processed in 0.038404 second(s), 13 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表