起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 368|回复: 13

透视数据集问题**

[复制链接]
发表于 2009-4-23 15:15:05 | 显示全部楼层 |阅读模式
采用如下过滤方式:
DocView1.DocClassID := '';
with TPivotDataSet(DataSetBroker.DataSet) do
begin
    Close;
    DecisionDef.SQL := 'SELECT * FROM table where .....';
    Open;
end;
DocView1.DocClassID := 'XXXX';
该方式在开发环境中运行没有问题,但是用初始化运行就出错:
“运行系统初始化的时候发生异常:Cannot perform this operation on an open dataset类型:EDatabaseError。”
以前帖子说过,过滤之前去掉表单连接就行了,那为什么运行环境下还是会报错呢??
回复

使用道具 举报

发表于 2009-4-23 15:20:14 | 显示全部楼层
你的doc初始化时空的吗?你可以放置一个新的docview,什么也不要设置,然后删除docview1.代码页注释掉,如果不报错。再加代码调试。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-23 15:51:02 | 显示全部楼层
试过了,删除DocView1的连接,什么都不设置,并且注释掉docview1.代码。但是在运行环境下运行还是会报1楼的错
回复 支持 反对

使用道具 举报

发表于 2009-4-23 15:56:11 | 显示全部楼层
那就是你引用的信息里面的数据集自动打开了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-23 15:58:43 | 显示全部楼层
不会吧,在信息里面我没有定义“自动打开数据集”,表单里面我也没有将“AutoOpenDataSet”选上啊。
它是怎么打开的?怎么关掉呢?
回复 支持 反对

使用道具 举报

发表于 2009-4-23 16:02:48 | 显示全部楼层
由业务信息控制:
使用业务信息(Info)中的自动打开数据集(DataSetPolicies)属性来设置当业务信息打开时,业务信息中的哪些业务数据集也要随之打开。
由文档控制:
设置文档(例如:表单文档、表格文档等)的自动打开数据集(AutoOpenDataSet)属性。如果该属性为True(默认值),则当文档打开时就会自动的打开文档所用到的所有数据集。为False时,文档打开时则不去打开自己用到的数据集,当然,也不会在文档打开时去关闭已经打开的数据集。
由信息策略控制:
使用信息策略(InfoPolicy)中的数据集策略(DataSets)属性来设置目标信息中的各数据集是否自动打开(AutoOpen)。如果是自动打开,则会在信息打开时打开数据集。
由代码控制:
如果以上几种办法都没有设置默认打开数据集,就要通过代码的方式控制数据集的打开和关闭。将数据集的Active属性设置为True,或调用数据集的Open方法都可以在运行时打开数据集。
注意
以上方法的逻辑关系是OR的关系,即只要使用其中一个方法,这个数据集即会打开。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-23 16:08:35 | 显示全部楼层
我只有在查询的时候才让数据集打开。我觉得应该朝这个方向思考一下,在开发环境上是不会报错的,就是在运行环境上运行才会报错
回复 支持 反对

使用道具 举报

发表于 2009-4-23 16:15:50 | 显示全部楼层
你的错误是因为有其他的地方需要引用这个数据集,而这个数据集是关闭着的。
你需要检查谁引用了这个数据集。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-23 16:58:18 | 显示全部楼层
除了这里以外没有其他地方引用这个数据集啊。我重新建了一个一摸一样的数据集,然后来操作这个新建的数据集,还是不行。
回复 支持 反对

使用道具 举报

发表于 2009-4-24 08:43:14 | 显示全部楼层
你可以试试信息只建一个数据集,表单或者是表格文档不要建立,然后用功能引用这个信息。是否报这个错误。而且你初始化的时候也是可以调试的,看看错误报在什么地方。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-22 07:11 , Processed in 0.037742 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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