「Open棟梁 wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
ルートのタグ
<ROOT> ・・・クエリ定義・・・ </ROOT>
クエリ定義は全て、このタグの中に収める。
ROOTタグ以外の全てのタグをネストできる。
パラメタとして設定した文字列に置換される。
<VAL name="xxx"/>
タグのネストは不可能。
最もよく使うタグで、基本的にWHERE句の条件を動的化する目的で使用するが、それ以外の場所・目的でも利用可能。
<IF> ・・・[演算子] 条件式・・・ </IF>
<IF name="xxx"> ・・・[演算子] 条件式・・・ </IF>
<IF>AND XXX=@P1<ELSE>AND XXX IS NULL</ELSE></IF>
<IF name="xxx">AND XXX IS NOT NULL</IF>
通常WHERE句内の条件式を囲うことで、条件式の有効・無効を制御する。
IFタグに対応した、XXX IS NULL,XXX IS NOT NULLなどの条件式を記述する。
<ELSE> ・・・[演算子] 条件式・・・ </ELSE>
<IF>AND XXX=@P1<ELSE>AND XXX IS NULL</ELSE></IF>
<IF name="xxx">AND XXX IS NOT NULL<ELSE>AND XXX IS NULL</ELSE></IF>
VALタグのみネスト可能。
タグ内パラメタを使用して、SELECT-CASE-DEFAULTする。
<SELECT name="xxx"> <CASE value="A">・・・</CASE> <CASE value="B">・・・</CASE> <DEFAULT>・・・</DEFAULT> </SELECT>
※ DEFAULTタグは省略可能
SELECTタグにタグ内パラメタを指定する。
VALタグのみネスト可能。
IN句の条件式を囲うことで、パラメタリストの指定と、IN句の有効・無効を制御する。
<LIST> ・・・[演算子] IN句の条件式・・・ </LIST>
VALタグのみネスト可能。
JOIN句をJOINタグで囲うことで、JOIN句の有効・無効を制御する。
<JOIN name="xxx"> ・・・JOIN句・・・ </JOIN>
タグ内パラメタを指定する。
ROOT、PARAM、DIVタグ以外の全てのタグをネストできる。
WHERE句内で使用するサブクエリの条件式をSUBタグで囲うことで、サブクエリの条件式の有効・無効を制御する。
<SUB name="xxx"> ・・・[演算子] サブクエリの条件式・・・ </SUB>
タグ内パラメタを指定する。
ROOT、PARAM、DIVタグ以外の全てのタグをネストできる。
WHERE句をWHEREタグで囲うことで、
不要なWHERE句や演算子(AND、OR)が削除されるようになる。
<WHERE> ・・・WHERE句・・・ </WHERE>
(・・・このため、IFタグは、・・・[演算子] 条件式・・・としている。)
ROOT、PARAM、DIVタグ以外の全てのタグをネストできる。
<INSCOL name="xxx"> InsertColumn , </INSCOL>
VALタグのみネスト可能。
<DELCMA> ・・・カンマ区切りのリスト・・・ </ DELCMA >
カンマ区切りのリストをプログラムで生成した場合、
生成した文字列の前・後に余分に付与されているカンマを削除する
【カンマの削除】
, aaa, bbb, ccc, ddd, eee, fff, ggg, → aaa, bbb, ccc, ddd, eee, fff, ggg
ROOT、PARAM、DIVタグ以外の全てのタグをネストできる。
動的パラメタライズド・クエリ分析ツールを使用し、
PARAMタグ間に指定したパラメタ値で動的パラメタライズド・クエリをテスト実行する。
<PARAM> ・・・パラメタ情報・・・ </PARAM>
パラメタの記述ルールを以下に示す。
P1, xxx<DIV/>
P1, String, xxx<DIV/> P2, Int32, 123<DIV/>
P1, String[], xxx, yyy, zzz<DIV/> P2, Int32[], 123, 456, 789<DIV/>
P1, String, xxx, yyy, zzz<DIV/>
上記の「型を表す文字列」・「値を表す文字列」については、下記を参照のこと。
DIVタグのみネストできる。
<DIV/>
PARAMタグ内で、パラメタを区切るために使用する。
ネストは不可能。
# | パラメタの.NET型 | 型を表す文字列 | 値を表す文字列(の制限) | |
通常時 | 配列時 | |||
1 | System.Boolean | Boolean | Boolean[] | 「true」 or 「false」の文字列のみ指定可能 |
2 | System.Byte | Byte | Byte[] | Byteに収まる文字 |
3 | System.UInt16 | UInt16 | UInt16[] | UInt16に収まる数値を表す文字列 |
4 | System.UInt32 | UInt32 | UInt32[] | UInt32に収まる数値を表す文字列 |
5 | System.UInt64 | UInt64 | UInt64[] | UInt64に収まる数値を表す文字列 |
6 | System.SByte | SByte | SByte[] | SByteに収まる文字 |
7 | System.Int16 | Int16 | Int16[] | Int16に収まる数値を表す文字列 |
8 | System.Int32 | Int32 | Int32[] | Int32に収まる数値を表す文字列 |
9 | System.Int64 | Int64 | Int64[] | Int64に収まる数値を表す文字列 |
10 | System.Decimal | Decimal | Decimal[] | Decimalに収まる数値を表す文字列 |
11 | System.Single | Single | Single[] | Singleに収まる数値を表す文字列 |
12 | System.Double | Double | Double[] | Doubleに収まる数値を表す文字列 |
13 | System.Char | Char | Char[] | Charに収まる文字 |
14 | System.String | String | String[] | 任意の文字列 |
15 | System.DateTime? | DateTime? | DateTime?[] | DateTime?(日付型)に変換可能な文字列 |
16 | System.DBNull | DBNull | サポートしない | - |
17 | null値の場合 | - | サポートしない | 「null」という文字列のみ指定可能 |
※ xxx, yyyの値はあっても無視される。
動的パラメタライズド・クエリのパラメタに「null」を使用した場合は、
タグを無効にするような動作になる(IFタグ-ELSEタグタグでは、ELSEタグが有効になる)。
※ xxx, yyyの値はあっても無視される。