2009年5月27日水曜日

Visual Studio のクエリビルダやDataTable構成ウィザードって

Visual StudioでDataSetを作って、データアダプタで、こんなSQLを作ってみたんです。

SELECT TaskId, Name
FROM Task
WHERE (TaskId = (CASE WHEN @A = '1' THEN 10 END))

@Aというパラメータを渡すパラメータクエリ。
でも、クエリビルダでは、変数の型がおかしいといわれ、アダプタ作成完了時には、@Aを宣言してください。という警告メッセージが。'1'と比較しているんだから@Aは文字列型だって認識してくれないものなのだろうか?一応以下のようなどうでもよいものを付けるとテーブルアダプタの[構成]を押してSQLを作り直してもエラーにならないけど、ダミーを入れるとわけがわからなくなる。

WITH [DUMMY] AS (SELECT 1 AS Expr1
WHERE (@A = 'AAA'))
SELECT TaskId, Name
FROM Task
WHERE (TaskId = (CASE WHEN @A = '1' THEN 10 END))

どうしたものかなぁ?

0 件のコメント: