レポートデータセットにデータを入力するストアドプロシージャがあります。パラメータの1つは、sprocdefでデフォルトでNullに設定されたnull許容varchar(10)です。このパラメーターを使用すると、ユーザーは、他のパラメーター化された基準を満たすすべての注文ではなく、単一の注文についてのみレポートする場合に、注文番号を指定できます。
注文番号は整数ですが、テーブルの先頭にゼロが付いたvarchar(10)フィールドに格納されます。(レポートデータは、この方法で整数の注文番号を格納するERPシステムからインポートされるため、同じ愚かな形式を維持します!)
パラメータがnullに設定されている場合、SSMSでストアドプロシージャを実行するときと、SSRSでデータセットの[クエリ...]コンテキストメニューオプションを使用するときの両方で、期待するすべての行を取得します。
ただし、SSRSクエリデザイナフォームで注文番号(「一重引用符」で囲まれているため、SSRSが先行ゼロを切り落とさないようにする)を指定してsprocを実行すると、ゼロ行が返されます。しかし、SSMSからsprocを実行し、パラメーターを同じ値に設定すると、期待される正しい行数が得られます。
ストアドプロシージャのパラメーターに指定された値を解析するときに、SSRSがバックグラウンドで予期しないことをしているように感じるので、私の質問は、整数を含む文字列を指定して、クエリデザイナーで同じ結果を得る方法です。 SSMS?一重引用符か何か他のもの?
私はコードを投稿していません。「なぜあなたはこれをしているのですか、なぜあなたはそれをしませんか?」ベストプラクティスの中毒者、箱の外で考えることはできません、答えを入力してください!;-p
ただし、この問題を誰も認識していない場合は、コードを投稿します。
プラットフォーム:SQL Server 2008 R2、BIDS2008。