Save Data in a SQL Server Image Column with VB6
I needed to retrieve image fields on SQL Server 7.0 with VB6, and I couldn't find any article about it. So, I assume others have had the same problem. I've since found a method for doing it.
You must use Microsoft ADO 2.5 and set it into the following project reference:
dim rst as new adodb.recordset
dim adoConn as new adodb.Connection
You also have to open the connection with the database.
'Open recordset....
rst.Open "Select * from <TABLE>
where <CONDITION>", adoConn, adOpenKeyset,
adLockOptimistic
'THIS FUNCTION SAVES AN IMAGE
INTO AN IMAGE DATATYPE FIELD
Private Function SaveImage()
Dim mStream As New ADODB.Stream
With mStream
.Type = adTypeBinary
.Open
.LoadFromFile "<IMAGE FILE
NAME>"
rst("<IMAGE FIELD NAME>").
Value = .Read
rst.Update
End With
Set mStream = Nothing
End Function
'THIS FUNCTION LOAD IMAGE FROM
IMAGE DATATYPE FIELD AND SAVE IT INTO A
FILE.....
Private Function LoadImage()
Dim mStream As New ADODB.Stream
With mStream
.Type = adTypeBinary
.Open
.Write rst("<IMAGE FIELD NAME>")
.SaveToFile "<DESTINATION FILE
NAME>", adSaveCreateOverWrite
End With
Set mStream = Nothing
End Function
Aside from this method, you can use a picture control to store an image, put a picture control into a form, and call it PictureTemp.
PictureTemp.DataField = "Immagine"
'Set DataField....
Set PictureTemp.DataSource = rst
'Set DataSource
You can use the PictureTemp.Picture property to get your image.
Private Function LoadImage()
Dim mStream As New ADODB.Stream
With mStream
.Type = adTypeBinary
.Open
PictureTemp.DataField = "Immagine"
'Set DataField....
Set PictureTemp.DataSource = rst
'Set DataSource
Set MSFGRID.CellPicture = PictureTemp.Picture
'Show image into a cell of
Microsoft FlexGrid
End With
Set mStream = Nothing
End
Function