Sunday, November 18, 2007

BlobToFile - Saving a BLOB field to a file

BlobToFile - Saving a BLOB field to a file

BlobToFile - Saving a BLOB field to a file
' Reusable routine that save a BLOB field to a file
' Requires Imports for System.Data and System.Data.Common
' Example: BlobToFile(dr, 2, "c:\xxxx.bmp")
Sub BlobToFile(ByVal dr As IDataReader, ByVal fieldIndex As Integer, _
ByVal filename As String)
Const CHUNK_SIZE As Integer = 200
Dim buffer(CHUNK_SIZE - 1) As Byte
Dim stream As New System.IO.FileStream(filename, IO.FileMode.Create)
Dim index As Long = 0
Try
Do
' Get the next chunk, exit if no more bytes.
Dim length As Integer = CInt(dr.GetBytes(fieldIndex, index, buffer, _
0, CHUNK_SIZE))
If length = 0 Then Exit Do
' Write to file and increment index in field data.
stream.Write(buffer, 0, length)
index += length
Loop
Finally
stream.Close()
End Try
End Sub