私のSSRSレポートビルダーでは、私のデータセットの1つに式が設定されています(名前はdsTagAttributesです)。クエリの種類はテキストです。SSRSで式Query.CommandTextを正しく設定する方法は?
これは、上記のクエリ式は、SELECT文に連結されたパラメータを持つクエリ式
="select m.TagName, ta.descriptor, t.[State] from MasterTags m inner join TagAttributesClassic ta on m.ID = ta.TagID inner join TagStates t on t.ID = m.StateID where m.PIServerID = @ServerID and t.[State] = @State and m.MetaData1 = @Station " & Parameters!AndOr.Value & "m.MetaData2 = @Device"
です。
データタイプはテキストで、デフォルト値は "or"で、パラメータの可視性は非表示に設定されています(下記のスクリーンショット)。このパラメータは、レポート実行時にデータセットの結果をor
からand
に動的に変更するために使用されるため、このパラメータを設定しました。
しかし、私はレポートを実行すると、例外がスローされると言って、
私のクエリコマンドテキストで間違って行くことができる何
?
ご協力いただきまして誠にありがとうございます。
あなたは正しいです。私は '@ State'、' @ Station'と '@ Device'パラメータを一重引用符で囲むことに失敗しました。私はssrsクエリビルダーが自動的にそれを処理すると思ったので、パラメータはテキストのタイプです。そして、あなたの提案に感謝します。あなたのアプローチとOrAnd条件を使用する利点は何ですか? – Juniuz
これは私のコーディングスタイルです。私は頻繁にクエリプランが良かったことに気付き、コンパイルする必要なしにクエリキャッシュに格納することができました。私にとっては、このようなアプローチは読みやすくなっています。しかし、それは大きな問題ではないので、あなたのアプローチがうまくいけばそれを使うことができます。 – Anton