其实很好解决,存放图片的字段类型可以为image,我不知道你前台用什么开发工具,不过SQL语句应该差不多,一般作法是先往数据表插入一条记录,然后用updateblob tablename set piccol = :lbob_pic where ...
其中piccol即为image型字段,在前台程序中先把图片转换成blob类型的变量,各种前台工具可能转换方法不一样
以前的贴子也有,可以搜一下!
其中piccol即为image型字段,在前台程序中先把图片转换成blob类型的变量,各种前台工具可能转换方法不一样
以前的贴子也有,可以搜一下!
下面是一个拷贝图像到SQL Server的pubs数据库的例子, 表名pub_info, 字段名logo,图像文件名picture.bmp,保存到pub_id='0736'记录
sp_textcopy @srvn
ame = 'ServerName',
@login = 'Login',
@password = 'Password',
@dbname = 'pubs',
@tbname = 'pub_info',
@colname = 'logo',
@filename = 'c:\picture.bmp',
@whereclause = " WHERE pub_id='0736' ",
@direction = 'I'
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