我已经成功地在server 2005中创建了一个链接到MySQL数据库的服务器。我需要从VS调用/执行一个MySQL存储过程(在MySQL中刷新表数据),然后为SSRS 2008中的报表创建一个包含这些数据的数据集。
我可以在SSMS查询窗口中运行以下操作,而不存在任何问题:
select * from openquery(myLinkedSrvrname,'call myMySQLprocname')但是,我无法从VS中的查询设计器窗口运行此语句来创建数据集。它会产生语法错误。有人能建议上述openquery语句的修复方法,或者知道如何从Reporting执行MySQL存储过程来创建数据集吗?
错误码
执行查询时发生错误。ERROR42000ODBC 5.1驱动程序。您的SQL语法出现了错误;对应于MySQL服务器版本的手册在第1行使用正确的语法('myLinkedSrvrname,‘myMySQLprocname’)
发布于 2012-10-04 08:00:21
您可以直接从SSRS创建一个连接(需要在SSRS服务器和开发机器上建立一个ODBC连接) http://dev.mysql.com/downloads/connector/odbc/
或
2)可以将这个openquery MySQL调用包装在Server存储的proc中。这将使您能够将一个参数从报表传递给Server存储的proc,然后再传递到MySQL存储的proc。但是,它需要在Server proc中使用动态SQL。
如果您使用第一个选项,那么您可能可以直接调用存储的Proc,但我只使用不通过ODBC的Oracle连接来完成该操作,因此SSRS可能会对该选项进行灰色处理。
使用第二个选项,您可能会遇到进一步的问题2跳身份验证,这取决于您正在运行的服务器操作系统。从SSMS调用MySQL proc仅仅是一跳,所以不会出现这个问题。
编辑:很明显,可以将MySQL ADO.NET连接器添加到SSRS:http://www.mazsoft.com/blog/post/2010/11/04/Using-SQL-Server-2008-Reporting-Services-(SSRS)-with-MySQL.aspx
听起来很复杂,但是如果您做了大量的MySQL,它将比使用ODBC更好。
https://stackoverflow.com/questions/11763734
复制相似问题