1.データベースからの読み込み Dim strSql As String = "select IMG from TBL where ID=XX" Dim cmd As NewOracleCommand(strSql, cnn) Dim dr AsOracleDataReader = cmd.ExecuteReader
'BLOBデータの読み込み If dr.Read Then Dim blob As OracleBlob = dr.GetOracleBlob(0) Dim ms As New System.IO.MemoryStream(blob.Value) 'MemoryStreamに読み込んだBLOBデータをファイルに書き出し
System.IO.File.WriteAllBytes(sCImgPath_Temp, ms.ToArray()) Else
Call WriteLineTime("該当するイメージファイルが見つかりません。")
Exit Sub End If
cmd.Dispose()
2.データベースへの書き込み 'ファイルのデータをByte配列に読込
Dim fs As New System.IO.FileStream(sCImgPath_New, IO.FileMode.Open, IO.FileAccess.Read) Dim blobData(fs.Length) As Byte
fs.Read(blobData, 0, fs.Length)
'SQLの設定(BLOBのデータはバインド変数「:blobdata」としておく)
Dim strUpdateSql AsString= "update tbl set IMG =:blobdata where id=XX"
cnn.BeginTransaction() 'BLOBのデータを設定 Dim Updatecmd As NewOracleCommand(strUpdateSql, cnn) Dim pBlob As OracleParameter = Updatecmd.Parameters.Add("blobdata", OracleDbType.Blob)
pBlob.Value = blobData
'SQLの実行(戻り値はUpdateの対象行数) Dim retCols As Long = Updatecmd.ExecuteNonQuery()
Updatecmd.Transaction.Commit()
Updatecmd.Dispose()