2.6.1 DBアダプタを使ったデータベースへのアクセス
DBアダプタは,サービスリクエスタやビジネスプロセスからの要求を受けて,データベースに対して直接アクセスできます。データベースに対するアクセスは,DBアダプタ内で定義されているSQLに従います。
(1) DBアダプタによるSQLの実行
DBアダプタは,開発環境で定義します。DBアダプタに対して要求するサービスリクエスタからは,実行するSQL文を記述したXML文書を作成して,作成したXML電文を要求電文に設定して実行します。DBアダプタによるSQLの実行について次の図に示します。
DBアダプタを定義する手順,およびDBアダプタに要求を出すサービスリクエスタの作成については,マニュアル「サービスプラットフォーム 開発ガイド 受付・アダプタ定義編」の「3.3.5 DBアダプタを定義する」を参照してください。
(2) バイナリデータ操作時の処理
DBアダプタ内部で,バイナリデータはbyte配列型,base64Binary型およびhexBinary型はString型として扱います。SELECT文実行時とINSERT文実行時にBLOB型を操作する場合の例を次に説明します。
(a) SELECT文実行時の処理
BLOB列に対してSELECT文を実行すると,DBアダプタではbyte配列からXML Schemaのbase64Binary型またはhexBinary型に変換(エンコード)して,要求元にBLOB列の値を返却します。
(b) INSERT文,UPDATE文実行時の処理
BLOB列に対してINSERT文,またはUPDATE文を実行する際は,要求元がXML Schemaのbase64Binary型またはhexBinary型のデータをDBアダプタに渡します。DBアダプタではbase64Binary型またはhexBinary型からbyte配列に変換(デコード)して,SQLを実行します。
xsd:hexBinary型またはxsd:base64Binary型のデータの変換(デコード)でエラーが発生した場合,KDEC63001-E(xsd:hexBinary型の場合は原因コード=22,xsd:base64Binary型の場合は原因コード=23)を出力します。また,DBアダプタの定義時に,「システム例外をフォルトに変換する」を有効にしている場合はDBアダプタの呼び出し元にはフォルト電文が送出され,無効にしている場合はシステム例外が送出されます。