繁体   English   中英

如何使用MySQL数据通过openquery和链接服务器在VS for SSRS 2008报告中创建数据集

[英]How to create a dataset in VS for SSRS 2008 report with MySQL data, via openquery and linked server

我已成功在SQL Server 2005中创建了一个链接服务器到MySQL数据库。 我需要从VS调用/执行MySQL存储过程(以刷新MySQL中的表数据),然后使用此数据为SSRS 2008中的报告创建数据集。

我可以从SSMS查询窗口运行以下内容而不会出现问题:

select * from openquery(myLinkedSrvrname,'call myMySQLprocname')

但是,我无法从VS中的“查询设计器”窗口运行此语句来创建数据集。 它会产生语法错误。 任何人都可以建议修复上述openquery语句或知道如何从Reporting Services执行MySQL存储过程来创建数据集?

错误代码

执行查询时发生错误。 错误[42000] [MySQL] [ODBC 5.1驱动程序] [mysqld-5.5.16]。 您的SQL语法有错误; 与您的MySQL服务器版本对应的手册,用于在第1行附近使用正确的语法('myLinkedSrvrname,'myMySQLprocname')'

您可以1)直接从SSRS创建连接(需要SSRS服务器和开发机器上的ODBC连接) http://dev.mysql.com/downloads/connector/odbc/

要么

2)你可以在SQL Server存储过程中包装这个openquery MySQL调用。 这将使您能够将参数从报表传递到SQL Server存储过程,然后传递到MySQL存储过程。 但它需要在SQL Server proc中使用Dynamic SQL。

如果您使用第一个选项,那么您可以直接调用存储过程,但我只使用不通过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 ) -而-MySQL.aspx

听起来很复杂,但如果你做了很多MySQL,那将比使用ODBC更好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM