带参数的SSRS / MySQL /存储过程通过ODBC

时间:2013-05-03 03:58:36

标签: mysql reporting-services odbc

我们正在使用SQL Server 2012和MySQL 6,虽然我可以直接在数据集窗口中编写SQL语句,但我似乎无法通过CALL传递参数来使用MySQL存储过程:

Actuaaly我的问题是  SSRS或ODBC驱动程序在发送/接收参数值时遇到问题。

语法的其他尝试:       打电话shop.GetRegions(),       打电话shop.GetRegions(?),       打电话给shop.GetRegions(regid),       call shop.GetRegions(@regid)

这些都不起作用。

如果我使用硬编码值调用该过程,即call shop.GetRegions(5) - 它可以工作。

同样,如果存储过程没有参数,它可以正常工作。

任何人都可以就这个问题给我任何真正的指示。非常感谢正确语法或分步示例的示例。

3 个答案:

答案 0 :(得分:2)

最后,我得到了解决方案几天的努力。 我们应该从MYSQL在SSMS中创建链接服务器,然后我们只需要调用存储过程。 调用存储过程的语法:

EXEC ('CALL GASP_sales_aps(?, ?)', @dt_start, @dt_end)AT MySQL(Linked Server Name) 

GASP_sales_aps ---->程序名称

(适用@ dt_start,@ dt_end)------>是参数。

答案 1 :(得分:1)

如果您不想使用链接服务器,可以

  1. 将数据集类型设置为Text

  2. 将查询设置为

      

    =“exec GASP_sales_aps',”& Parameters@@parameter1.Value& “','”&参数!@ parameter1.Value&“'”

答案 2 :(得分:0)

@RegBes是正确的而不是链接服务器将数据集类型设置为Text。语法中的小解决方法添加括号而不是exec需要使用mysql调用。

$stateProvider.state('qa-dashboard.orders-list', {
        url: '/orders-list/?orderId$orderName',
        views: {           
                templateUrl: 'app/qa-dashboard/orders/orders-list/orders-list.html',
                controller: 'OrdersListCtrl'        
        }
    });