Re: Is "OLE Objects" supported in .NET?
From: Paul Clement (UseAdddressAtEndofMessage_at_swspectrum.com)
Date: 06/22/04
- Next message: Paul Clement: "Re: Oracle Connection String"
- Previous message: Urban Andersson: "Re: Sql server to xml string with encoding"
- In reply to: Rashad Rivera: "Is "OLE Objects" supported in .NET?"
- Next in thread: Patrice: "Re: Is "OLE Objects" supported in .NET?"
- Reply: Patrice: "Re: Is "OLE Objects" supported in .NET?"
- Messages sorted by: [ date ] [ thread ]
Date: Tue, 22 Jun 2004 08:28:28 -0500
On Mon, 21 Jun 2004 15:19:31 -0400, "Rashad Rivera"
<rashadrivera.I_HATE_SPAM@SPAM_REALLY_SUCKS.hotmail.com> wrote:
¤ I need to figure out how to put files like a .JPG or .DOC into a Access2000
¤ DB via .NET. Does the Odbc library support this functionality? If not, any
¤ other suggestions?
The following uses an Access OLE Object field:
Sub WriteBlobToAccess()
Dim SourceFilePath As String
SourceFilePath = "e:\My Documents\Greenstone.bmp"
Dim AccessConnection As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=e:\My Documents\db1.mdb")
Dim AccessCommand As New OleDbCommand("UPDATE Table1 SET OLEField=? WHERE [record id] = 1",
AccessConnection)
Dim FileStreamObject As New System.IO.FileStream(SourceFilePath, IO.FileMode.Open,
IO.FileAccess.Read)
Dim PictureByteArray(CType(FileStreamObject.Length() - 1, Integer)) As Byte
FileStreamObject.Read(PictureByteArray, 0, PictureByteArray.Length)
FileStreamObject.Close()
Dim QueryParameter As New OleDbParameter("@Picture", OleDbType.LongVarBinary,
PictureByteArray.Length, ParameterDirection.Input, False, 0, 0, Nothing, DataRowVersion.Current,
PictureByteArray)
AccessCommand.Parameters.Add(QueryParameter)
AccessConnection.Open()
AccessCommand.ExecuteNonQuery()
AccessConnection.Close()
End Sub
Sub ReadBlobFromAccess()
Dim DestFilePath As String
Dim RecordId As String
Dim RetVal As Long
Dim FieldLen As Int32
DestFilePath = "e:\My Documents\GreenstoneFromAccess.bmp"
Dim PictureCol As Integer = 0 ' the column # of the BLOB field
Dim AccessConnection As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=e:\My Documents\db1.mdb")
Dim AccessCommand As New OleDbCommand("SELECT [record ID], OLEField FROM Table1 WHERE
[record id] = 1", AccessConnection)
AccessConnection.Open()
Dim AccessDataReader As OleDbDataReader =
AccessCommand.ExecuteReader(CommandBehavior.SequentialAccess)
AccessDataReader.Read()
FieldLen = AccessDataReader.Item(1).Length
Dim PictureByteArray(FieldLen - 1) As Byte
Dim startIndex As Integer = 0
RetVal = AccessDataReader.GetBytes(1, startIndex, PictureByteArray, 0,
PictureByteArray.Length)
AccessDataReader.Close()
AccessConnection.Close()
Dim FileStreamObject As New System.IO.FileStream(DestFilePath, IO.FileMode.Create,
IO.FileAccess.Write)
FileStreamObject.Write(PictureByteArray, 0, PictureByteArray.Length)
FileStreamObject.Close()
End Sub
Paul ~~~ pclement@ameritech.net
Microsoft MVP (Visual Basic)
- Next message: Paul Clement: "Re: Oracle Connection String"
- Previous message: Urban Andersson: "Re: Sql server to xml string with encoding"
- In reply to: Rashad Rivera: "Is "OLE Objects" supported in .NET?"
- Next in thread: Patrice: "Re: Is "OLE Objects" supported in .NET?"
- Reply: Patrice: "Re: Is "OLE Objects" supported in .NET?"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|