'image字段是二进制,但不能与VB中的控件交互数据,你可以用下面的方法把图片存入数据库和显示到picture上.
'这两个函数是磁盘文件和ADO的recordset的数据传输,然后用loadpicture加载到控件上.
'你自己看看怎么用,至于具体的使用你自己写吧.
Private Function DatabaseToFile(ByVal DataField As ADODB.Field, ByVal vFileName As String) As String
Dim fnum As Long, bytesleft As Long, bytes As Long
Dim tmp() As Byte
fnum = FreeFile
Open (vFileName) For Binary As fnum
bytesleft = DataField.ActualSize
Do While bytesleft
bytes = bytesleft
If bytes > 8192 Then bytes = 8192
tmp = DataField.GetChunk(bytes)
Put #fnum, , tmp
bytesleft = bytesleft - bytes
Loop
Close #fnum
End FunctionPrivate Function FileToDatabase(ByVal vDataField As ADODB.Field, ByVal vFileName As String)
Dim fnum As Long, bytesleft As Long, bytes As Long
Dim tmp() As Byte
fnum = FreeFile
Open vFileName For Binary As fnum
bytesleft = LOF(fnum)
Do While bytesleft
bytes = bytesleft
If bytes > 8192 Then bytes = 8192
ReDim tmp(1 To bytes) As Byte
Get #fnum, , tmp
vDataField.AppendChunk tmp
bytesleft = bytesleft - bytes
Loop
Close #fnum
End Function
'这两个函数是磁盘文件和ADO的recordset的数据传输,然后用loadpicture加载到控件上.
'你自己看看怎么用,至于具体的使用你自己写吧.
Private Function DatabaseToFile(ByVal DataField As ADODB.Field, ByVal vFileName As String) As String
Dim fnum As Long, bytesleft As Long, bytes As Long
Dim tmp() As Byte
fnum = FreeFile
Open (vFileName) For Binary As fnum
bytesleft = DataField.ActualSize
Do While bytesleft
bytes = bytesleft
If bytes > 8192 Then bytes = 8192
tmp = DataField.GetChunk(bytes)
Put #fnum, , tmp
bytesleft = bytesleft - bytes
Loop
Close #fnum
End FunctionPrivate Function FileToDatabase(ByVal vDataField As ADODB.Field, ByVal vFileName As String)
Dim fnum As Long, bytesleft As Long, bytes As Long
Dim tmp() As Byte
fnum = FreeFile
Open vFileName For Binary As fnum
bytesleft = LOF(fnum)
Do While bytesleft
bytes = bytesleft
If bytes > 8192 Then bytes = 8192
ReDim tmp(1 To bytes) As Byte
Get #fnum, , tmp
vDataField.AppendChunk tmp
bytesleft = bytesleft - bytes
Loop
Close #fnum
End Function
dim temp() as byte
redim temp(rs("photo").ActualSize)as byte
temp=rs("photo").getchunk rs("photo").ActualSize
''''''''''''''''''''''''''
open "c:\temp.bmp" for binary as #1
put #1,,1,temp
close #1
''''''''''''''''''''''''''
picture1.picture=loadpicture(c:\temp.bmp)