4

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 構文にエラーがあります。1行目のnear ('myLinkedSrvrname, 'myMySQLprocname')'を使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアル

4

1 に答える 1

1

1) SSRS から直接接続を作成します (SSRS サーバーと開発マシンで ODBC 接続が必要です) http://dev.mysql.com/downloads/connector/odbc/

また

2) この openquery MySQL 呼び出しを SQL Server ストアド プロシージャ内にラップできます。これにより、レポートから SQL Server ストアド プロシージャにパラメーターを渡し、次に MySQL ストアド プロシージャに渡すことができます。ただし、SQL Server proc 内で動的 SQL を使用する必要があります。

最初のオプションを使用すると、Stored Proc を直接呼び出すことができる場合がありますが、ODBC 経由ではない Oracle 接続でのみ実行したため、SSRS はそのオプションをグレーアウトする可能性があります。

2 番目のオプションを使用すると、実行しているサーバー オペレーティング システムによっては、2 ホップ認証でさらに問題が発生する可能性があります。SSMS から MySQL proc を呼び出すのは 1 ホップだけなので、その問題は発生しません。

編集: どうやら、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 を使用するよりも優れています。

于 2012-10-04T08:00:21.700 に答える