【问题标题】:Datenwerke ReportServer, trouble adding custom Data Source (Caché)Datenwerke ReportServer,添加自定义数据源(Caché)时遇到问题
【发布时间】:2015-09-24 16:04:14
【问题描述】:

我正在使用 Datenwerke ReportServer。我正在尝试通过 DJBC 使用 Caché 源。 Here is a blog post from them on adding additional databases。不幸的是,我并不完全理解它。我将 JDBC 文件放在正确的位置,并且为 Caché 创建了一个 groovy 脚本,如下所示。问题与它所做的奇怪的查询包装器有关。我可以通过 ReportServer UI 成功测试数据源,但是当我尝试执行简单查询时,出现以下错误:

错误

无法准备查询:准备语句时出错 执行报表查询:SELECT * FROM (SELECT * FROM (SELECT TOP 10 * FROM HS_IHE_ATNA_Repository.Aggregation) WrappedQry) limitQry LIMIT 50 OFFSET 0 /* 令牌:6aab148a-927b-45d5-9dfd-724788e139ca / / 当前用户:3 */

cache.groovy

package databasehelper;

import net.datenwerke.rs.scripting.service.scripting.scriptservices.GlobalsWrapper;
import net.datenwerke.rs.base.service.dbhelper.DatabaseHelper
import net.datenwerke.rs.base.service.dbhelper.hooks.DatabaseHelperProviderHook
import net.datenwerke.rs.base.service.dbhelper.queries.Query
import net.datenwerke.rs.base.service.dbhelper.querybuilder.ColumnNamingService
import net.datenwerke.rs.base.service.dbhelper.querybuilder.QueryBuilder

class Cache extends DatabaseHelper {

    public static final String DB_NAME = "Cache";
    public static final String DB_DRIVER = "com.intersys.jdbc.CacheDriver";
    public static final String DB_DESCRIPTOR = "DBHelper_Cache";

    @Override
    public String getDescriptor() {
        return DB_DESCRIPTOR;
    }

    @Override
    public String getDriver() {
        return DB_DRIVER;
    }

    @Override
    public String getName() {
        return DB_NAME;
    }

    @Override
    public String createDummyQuery() {
    return 'SELECT * FROM HS_IHE_ATNA_Repository.Aggregation'
    }

}


def HOOK_NAME = "DATASOURCE_HELPER_Cache"

def callback =  [
            provideDatabaseHelpers : {
                return Collections.singletonList(new Cache());
            }
        ] as DatabaseHelperProviderHook;

GLOBALS.services.callbackRegistry.attachHook(HOOK_NAME, DatabaseHelperProviderHook.class, callback)

在此处发布此内容似乎有些过时,尤其是使用

【问题讨论】:

    标签: sql groovy reportserver intersystems-cache


    【解决方案1】:

    通知生成的查询:

    SELECT * FROM (SELECT * FROM 
    (SELECT TOP 10 * FROM HS_IHE_ATNA_Repository.Aggregation) 
    wrappedQry) limitQry LIMIT 50 OFFSET 0
    

    Caché SQL 不支持LIMITOFFSET

    %VIDTOP 可以在 Caché SQL 中使用,而不是 LIMIT / OFFSEThttp://docs.intersystems.com/cache20152/csp/docbook/DocBook.UI.Page.cls?KEY=GSQL_views#GSQL_C13474

    【讨论】:

    • 遗憾的是我已经继续前进,但我很欣赏这篇文章,并会接受,希望它对未来的人有所帮助:)
    • @ScottBeeson 是的。这就是希望。我知道在提出问题两个月后,您可能不需要答案:-)
    猜你喜欢
    • 2012-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多