把图片保存到数据库
Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim stm As ADODB.Stream
`把图片保存到数据库
Private Sub SavePictureToDB(cn As ADODB.Connection)
Set stm = New ADODB.Stream
rs.Open "select * from image", cn, adOpenKeyset, adLockOptimistic
With stm
.Type = adTypeBinary
.Open
.LoadFromFile "e:\aaa\052.jpg"
End With
With rs
.AddNew
.Fields("Image") = stm.Read
.Update
End With
rs.Close
Set rs = Nothing
End Sub
`把图片从数据库取出
Private Sub LoadPictureFromDB(cn As ADODB.Connection)
Dim fld As Field
Dim strTemp As String
Set stm = New ADODB.Stream
strTemp = "c:\temp.tmp" `临时文件,用来保存读出的图片
rs.Open "select * from image", cn, , , adCmdText
MSHFlexGrid1.Redraw = False `增强性能
Do Until rs.EOF
For Each fld In rs.Fields
If fld.Type = adLongVarBinary Then
With stm
.Type = adTypeBinary
.Open
.Write fld.value
.SaveToFile strTemp, adSaveCreateOverWrite
.Close
End With
MSHFlexGrid1.Row = MSHFlexGrid1.Rows - 1
Set MSHFlexGrid1.CellPicture = LoadPicture(strTemp) `在mshflexgrid里显示图片
End If
Next fld
MSHFlexGrid1.Rows = MSHFlexGrid1.Rows + 1
rs.MoveNext
Loop
Set stm = Nothing
MSHFlexGrid1.Rows = MSHFlexGrid1.Rows - 1
MSHFlexGrid1.Redraw = True
rs.Close
Set rs = Nothing
Image1.Picture = LoadPicture(strTemp) `在image控件里显示最后一张图片
End Sub
其实很好解决,存放图片的字段类型可以为image,我不知道你前台用什么开发工具,不过SQL语句应该差不多,一般作法是先往数据表插入一条记录,然后用updateblob tablename set piccol = :lbob_pic where ...
其中piccol即为image型字段,在前台程序中先把图片转换成blob类型的变量,各种前台工具可能转换方法不一样
以前的贴子也有,可以搜一下!