Open棟梁 wiki
名前バインドにのみ対応しています。このため、どのデータプロバイダであっても、順番バインドをサポートしません。
ストアド プロシジャでも動的パラメタライズド・クエリ機能を使用できます。
B層ベースクラス2の例外処理をカスタマイズして、 左記のリトライ対象例外を業務例外に振り替え、P層に正常系の戻り値が戻るようにします。
SetUserParameter()メソッドは、SQLインジェクションの可能性があるものの、DB部品の(僅かな)制約 / 制限などを解決するAPIでもあります。このため、SetUserParameter()メソッドの利用を制限せず、D層のベースクラス2に実装するSQLトレースをカスタマイズしてSQLインジェクションの可能性があるSQLをチェック & Warningログを出力するなどの 対応をした方がプロジェクトとしては、スムーズに開発を遂行できると考えます。 [#oe0cc3be]
共通のコマンド タイムアウト値をconfigファイルに設定できます。
サポートしています。また、配列バインドをサポートしていないデータプロバイダのために、バッチクエリ作成支援機能を提供しています。
SetParameter()メソッドに型、サイズ.etcを指定可能です。 後工程でのPG修正が難しい場合は、SQL定義ファイル中に型キャストを明示することでも対応可能です。
1つのXMLファイル中に150タグ以上あると性能が劣化が始まりますので、不要なタグは記述しないようにお願いします(XMLファイル サイズについては、問題ないようです)。 また、バッチ更新処理の場合は、ラウンド・トリップ軽減の観点も含め、配列バインド(ODP.NET、HiRDBでサポート)、バッチクエリ作成支援機能を併用下さい。なお、動的パラメタライズド・クエリ分析ツールを使用したテストのために記述する PARAMタグ、DIVタグなどXMLドキュメント オブジェクトの更新処理を伴わないタグについては、性能劣化の原因になりません。
検索条件のIN句(副問合せ)を動的化する場合、動的パラメタライズド・クエリのIFタグ ではなく、タグのネストが可能なSUBタグを使用頂けます。
DB部品の最も初めのチェック処理にXmlDocument?.Load()メソッドを使用しているため、 XMLフォーマットとして正しいものは動的パラメタライズド・クエリ、不正であるものは静的パラメタライズド・クエリとして実行されるため、この現象は、不正なフォーマットのXMLを投げている事に起因します。XMLフォーマットの不正を確認するためには、動的パラメタライズド・クエリ分析ツールを使用するか、デバッグ時に、DB部品クラスのIsDPQプロパティ(動的SQLか静的SQLかを識別する)をチェックして下さい。
D層自動生成ツールは、Update時に使用するパラメタ識別子にプレフィックス・サフィックスを1文字以上、追加する必要があります。この際、パラメタ識別子が30文字を越えてしまい、エラーが発生するケースがあります。プレフィックス・サフィックスは、D層自動生成ツールのコンフィグで設定可能です。この再設定と、再生成が面倒な場合は、文字列一括置換ツールなどを使ってパラメタ識別子を置換するなどして下さい(DaoとUpdate処理のSQL定義(XML)が置換対象ファイルになります)。
サポートしています。パラメタライズド・クエリ自体がLike句を使用した曖昧検索をサポートしているため 文字列連結やSetUserParameter()メソッドを使用する必要はありません。
サポートしませんが、利用制限はしていません。D層フレームワーク(静/動的パラメタライズド・クエリ機能、D層自動生成ツール)の使用を推奨しています。