戻り値は処理された行数が返されます。Sub以下は連続で、INSERT、UPDATE、DELETE文の実行を行います。上の「1個のINSERT文の実行」でも、以下の例でも、DML文の実行は成功した場合にその都度コミットされています。途中でエラーが在った場合はそこまでの結果がデータに残ってしまいます。そこで、トランザクション処理をDML文の実行の前後で掛けてやれば、エラーが在った場合には更新処理が反映されません。トランザクション開始しOracleTransactionオブジェクトを取得します。OracleCommandオブジェクトにOracleTransactionオブジェクトを関連付けた後で、DML文の実行を行います。各DML文の実行が正常に終わった後に、OracleTransactionオブジェクトのCommitを行って、全てのDML文の確定を行います。全てのDML文の結果の反映を廃棄を行います。■テーブルにBLOB型を設定しその中に画像データファイルを格納する方法を以下に示します。テストを行うためのBLOBフィールドを持つテーブルを用意します。blob);画像ファイルはテストのため、「test.png」というファイル名とします。(画像の内容は「Oracleへの接続と切断」でメッセージとして表示しているものです)このファイルを全てバイト配列に読込み、その値を全てBLOBフィールドに登録します。INSERT文の定義の文字列の中で「:blob」がありますが、コマンドオブジェクトを生成した後でこの引数名で値を設定できます。いうよりもBLOB型のフィールドにはSQL文で直接記述できないためこの方法を用います。上で登録されたBLOBデータを読込んで、フォーム上のPictureBoxに設定し表示します。SELECT文でBLOBデータのカラムを指定し、コマンドオブジェクトを生成後、OracleDataReaderで読み込み処理を行います。PictureBoxに画像設定を行います。存在するBLOBデータを更新する方法は、新規追加の場合と同じになります。違いはSQL文がUPDATE文である点のみです。BLOBデータの行を取得します。メソッドでBLOBデータ(OracleBlob)そのものを取得します。書き込みメソッドを使ってバイト配列を設定してやります。この処理で一つ注意点があります。指定しないと、以下のエラーが発生します。