Intersystems缓存提供接口以针对缓存数据库运行SQL关系查询。当试图在对象数据结构中进行聚合查询时非常缓慢,有时几乎不可能。如何在SQL Proc中使用Intersystems缓存数据库中的对象脚本
有没有办法让对象脚本方法返回数据行作为SQLProc类型,而不使用低性能的SQL查询。
我看过rset和%List对象,但我似乎无法连接点。
我可以返回一个分隔的字符串,但我需要能够揭露它作为一个存储过程来报告引擎如水晶等
Intersystems缓存提供接口以针对缓存数据库运行SQL关系查询。当试图在对象数据结构中进行聚合查询时非常缓慢,有时几乎不可能。如何在SQL Proc中使用Intersystems缓存数据库中的对象脚本
有没有办法让对象脚本方法返回数据行作为SQLProc类型,而不使用低性能的SQL查询。
我看过rset和%List对象,但我似乎无法连接点。
我可以返回一个分隔的字符串,但我需要能够揭露它作为一个存储过程来报告引擎如水晶等
有几种方式揭露自定义查询结果,他们都提到在文档这里:
http://docs.intersystems.com/cache20141/csp/docbook/DocBook.UI.Page.cls?KEY=GSQL_procedures
作为文档建议,优选的方法是使用%SQL.CustomQuery类来定义每个自定义查询作为一个单独的类;有关此方法的示例,请参阅SAMPLES命名空间中的Sample.CustomResultSet。
您还可以在单个类中使用自定义的执行/获取/关闭方法定义多个SQL查询。 %Dictionary包在以“Query”结尾的类中有很多这种方法的示例。您还可以在系统项目中搜索“%Query”以获取更多示例。
SSH,我查看了引用的文档,但是我找不到你提到的示例代码“请参阅SAMPLES命名空间中的Sample.CustomResultSet。 我想我明白我必须创建一个具有属性的新类代表我想要在客户查询中返回的数据行,但我真的可以使用一个示例来展示这些部分如何组合在一起。 – carl 2015-02-12 16:47:00
SSH,我找到了Sample命名空间,这是完美的,谢谢你 – carl 2015-02-12 17:07:05