网站首页博客首页 ┆欢迎光临 ERP顾问最热爱的网络——金蝶社区 登录注册帮助
Shanry
日志

“查询分析工具”与SQL查询分析器的区别和限制

供应链的“查询分析工具”通过“直接查询语句”查询报表时,写的SQL语句或调用的存储过程等,在SQL server 的查询分析器中执行成功,能查询出来数据,但是在“查询分析工具”中就报错,比如说字段过长,查询数据不正确之类?或虽然没有报错,但是查询不出任何数据?

最近我们与K3事业部进行沟通时,提到了这个问题,事业部给了我们比较好的解答,供大家参考:

 

一、供应链查询分析工具直接查询语句实现了SQL server 的查询分析器的大部分功能,主要区别在于不支持以下SQL的解析,防止出现对数据库造成破坏的SQL语句

    1、不能出现对数据库进行修改的ALTER DATABASE语句。

    2、不能出现对数据库进行删除的DROP DATABASE语句。

    3、不能出现对数据库里的物理表进行修改的UPDATE语句。

    4、不能出现对数据库里的物理表进行插入的INSERT语句。

    5、不能出现对数据库里的物理表的数据进行删除的DELETE语句。

    6、不能出现对数据库里的物理表进行删除的DROP TABLE语句。

    7、不能出现对数据库中表以外的物理数据进行修改的ALTER语句。

    8、不能出现对数据库中表以外的物理数据进行删除的DROP语句。

    9、不能对数据库中的物理表进行TRUNCATE TABLE操作。

    10、不能进行DBCC操作。

二、注意事项

   1、交叉分析报表中不处理数据库表中没有的字段,如仓存单据的计划价金额等字段;因数据库表中没有的字段是计算得出,没有进行保存,如果需要取数,通过自定义单据处理。

   2、进入查询分析报表时,如果报表的方案在序时簿中设置的显示列超过80列,进入时会提示:当前选择待显示的列数超过80,对性能会影响,请慎重选择必须列;用户可以在序时簿中修改显示列数,只要小于80,则不会再报提示。并且即使选择的列不包括报表取数所需要的列,也可以正常取数。

三、最新说明请参考《K3V10.3采购管理用户手册——系统工具——查询分析工具》 或《K3V10.3BOS用户手册——报表定义》

四、目前查询分析工具可以跨帐套取数。但是跨服务器取数,可能有问题,后续版本考虑完善。

比如:类似如下的sql,

select * from AIS20061103093657.dbo.t_icitem

只能在同一个SQL Server,跨机器不行.

另外,类似如下的sql,(‘MSDASQL‘,    ‘DRIVER={SQL Server};SERVER=192.168.18.174;UID=sa;PWD=1‘,    hdtz.dbo.test)(test) values(‘2‘) –GO

,建议把=改成==

已经公开 2007年9月14日 14:26 作者: 原子

评论

avatar 
K/3 BOS SQL查询分析报表和MS SQL Server的查询分析器的定位不一样,功能是有区别的。
 
使用K/3 BOS 查询分析报表,就要明确这是个简单报表。复杂报表应该使用金蝶的万能报表。凡是要进行数据改变的(增、删、改)都是不允许的。
 
K/3 BOS 查询分析报表可以支持存储过程,但条件是该存储过程有唯一返回项。
2007-09-14 14:41
 
avatar 
发的好,评的好!
2007-09-14 15:16
 
avatar 

好是好,可是在SQL的查询分析器中能执行成功但在K3的查询分析器中就不可以的疑问没有被完全解决。我记得最清楚的一个例子是自己写的查询在SQL中可以出结果,但在K3中就是一片空白。一直搞不太懂是怎么回事!

2007-09-14 16:48
 
avatar 
如何开发一个功能强大,而操作简单的查询分析工具是要做一番工作的.期待中.
2007-09-14 20:13
 
请登录后再发表评论以赚取更多积分