我们正在使用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) - 它可以工作。
同样,如果存储过程没有参数,它可以正常工作。
任何人都可以就这个问题给我任何真正的指示。非常感谢正确语法或分步示例的示例。
答案 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)
如果您不想使用链接服务器,可以
将数据集类型设置为Text
将查询设置为
=“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'
}
});