Article ID: 190450
Article Last Modified on 3/2/2005
Set ADOprm = ADOCmd.CreateParameter (, adLongVarBinary, adParamInput, (ImgLen + 1))
CREATE TABLE BLOB_Table
(
col1 char(1),
BLOB image
)
GO
if exists (SELECT * FROM sysobjects WHERE id =
object_id('dbo.uspInsertBLOB') AND sysstat & 0xf = 4)
DROP PROCEDURE dbo.uspInsertBLOB
GO
CREATE PROCEDURE uspInsertBLOB
(
@col1 char (1),
@BLOB image
)
AS
INSERT BLOB_Table
VALUES (@col1, @BLOB)
GO
Dim ADOCmd As New ADODB.Command
Dim ADOprm As New ADODB.Parameter
Dim ADOcon As ADODB.Connection
Dim intFile As Integer
Dim ImgBuff() As Byte
Dim ImgLen As Long
Set ADOcon = New ADODB.Connection
With ADOcon
.Provider = "MSDASQL"
.CursorLocation = adUseClient
.ConnectionString = "driver=
{SQL Server};server=(local);uid=<username>;pwd=<strong password>;database=pubs"
.Open
End With
'Change this to the path of a GIF file you want to use for testing.
IMG_FILE_GIF = "E:\Graphics\GIF\Image.gif"
'Read/Store GIF file in ByteArray
intFile = FreeFile
Open IMG_FILE_GIF For Binary As #intFile
ImgLen = LOF(intFile)
ReDim ImgBuff(ImgLen) As Byte
Get #intFile, , ImgBuff()
Close #intFile
Set ADOCmd.ActiveConnection = ADOcon
ADOCmd.CommandType = adCmdStoredProc
ADOCmd.CommandText = "uspInsertBLOB"
Set ADOprm = ADOCmd.CreateParameter(, adChar, adParamInput, 1, "1")
ADOCmd.Parameters.Append ADOprm
'The datatype must be specified as adLongVarBinary
'For the code to function correctly comment this line.
Set ADOprm = ADOCmd.CreateParameter(, adLongVarBinary, _
adParamInput, ImgLen)
'Uncomment this line.
'Set ADOprm = ADOCmd.CreateParameter(, adLongVarBinary, _
adParamInput, (ImgLen + 1))
ADOCmd.Parameters.Append ADOprm
'Set the Value of the parameter with the AppendChunk method.
ADOprm.AppendChunk ImgBuff()
'The preceding example assumes you are using a small image file.
'See the article reference in the REFERENCES section for handling a
'large image file.
ADOCmd.Execute
Set ADOCmd = Nothing
Set ADOprm = Nothing
SELECT * FROM BLOB_Table
The result window should show that a row was added to the table and that
the BLOB column contains image/BLOB data.180368 HOWTO: Retrieve and Update a SQL Server Text Field Using ADO
Keywords: kbbug kbstoredproc kbdatabase kbprb KB190450