rs.appendchunck "读取的图片二进制值"这样读取图片文件 dim data() as byte redim data(lof("图片文件名") open "文件名" for binary as #1 input #1,data close #1 rs.appendchunck data我没调试过,不知道是否可用
对应字段用二进制类型的.Private Function DatabaseToFile(ByVal DataField As ADODB.Field, ByVal vSaveAs As String, ByVal vFileExpendName As String) As String Dim fnum As Long, bytesleft As Long, bytes As Long Dim lSumSize As Long, lNowSize As Long Dim tmp() As Byte On Error GoTo ErrHandleDatabaseToFile If Trim(vSaveAs) = "" Then DatabaseToFile = GetTempFileName(vFileExpendName) Else DatabaseToFile = Trim(vSaveAs) End If
fnum = FreeFile Open (DatabaseToFile) For Binary As fnum bytesleft = DataField.ActualSize
lSumSize = CLng(bytesleft / 8192)
Do While bytesleft bytes = bytesleft If bytes > 8192 Then bytes = 8192 tmp = DataField.GetChunk(bytes) Put #fnum, , tmp bytesleft = bytesleft - bytes lNowSize = lNowSize + 1 RaiseEvent TransmitData(lNowSize, lSumSize, False) Loop Close #fnum Exit Function ErrHandleDatabaseToFile: DatabaseToFile = "" Err.Clear End FunctionPrivate Function FileToDatabase(ByVal vDataField As ADODB.Field, ByVal vFileName As String) Dim fnum As Long, bytesleft As Long, bytes As Long Dim lSumSize As Long, lNowSize As Long Dim tmp() As Byte On Error GoTo ErrHandleFileToDatabase
fnum = FreeFile Open vFileName For Binary As fnum bytesleft = LOF(fnum) lSumSize = CLng(bytesleft / 8192) 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 lNowSize = lNowSize + 1 DoEvents RaiseEvent TransmitData(lNowSize, lSumSize, True) Loop
Close #fnum
Exit Function ErrHandleFileToDatabase: Err.Clear End Function
dim data() as byte
redim data(lof("图片文件名")
open "文件名" for binary as #1
input #1,data
close #1
rs.appendchunck data我没调试过,不知道是否可用
my e-mail:[email protected]
请发给我
好吗?
Dim fnum As Long, bytesleft As Long, bytes As Long
Dim lSumSize As Long, lNowSize As Long
Dim tmp() As Byte
On Error GoTo ErrHandleDatabaseToFile
If Trim(vSaveAs) = "" Then
DatabaseToFile = GetTempFileName(vFileExpendName)
Else
DatabaseToFile = Trim(vSaveAs)
End If
fnum = FreeFile
Open (DatabaseToFile) For Binary As fnum
bytesleft = DataField.ActualSize
lSumSize = CLng(bytesleft / 8192)
Do While bytesleft
bytes = bytesleft
If bytes > 8192 Then bytes = 8192
tmp = DataField.GetChunk(bytes)
Put #fnum, , tmp
bytesleft = bytesleft - bytes
lNowSize = lNowSize + 1
RaiseEvent TransmitData(lNowSize, lSumSize, False)
Loop
Close #fnum
Exit Function
ErrHandleDatabaseToFile:
DatabaseToFile = ""
Err.Clear
End FunctionPrivate Function FileToDatabase(ByVal vDataField As ADODB.Field, ByVal vFileName As String)
Dim fnum As Long, bytesleft As Long, bytes As Long
Dim lSumSize As Long, lNowSize As Long
Dim tmp() As Byte
On Error GoTo ErrHandleFileToDatabase
fnum = FreeFile
Open vFileName For Binary As fnum
bytesleft = LOF(fnum)
lSumSize = CLng(bytesleft / 8192)
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
lNowSize = lNowSize + 1
DoEvents
RaiseEvent TransmitData(lNowSize, lSumSize, True)
Loop
Close #fnum
Exit Function
ErrHandleFileToDatabase:
Err.Clear
End Function
自己看吧