部分代码: Public Const BColor As Long = 13473132 'シエRGB(108, 149, 205)Public Sub SavePicToDB(fileName As String, fld As ADODB.Field) Dim nLenLeft As Long Dim nChunkSize As Long Dim mPicFile As Scripting.File Dim mFileBuffer() As Byte Dim varChunk As Variant Dim lFso As New FileSystemObject
Const ConChunkSize = 32768 If fld.Type <> adLongVarBinary Then MsgBox "クテラヨカホイサハヌモテタエエ豢「ヘシミホ」ャヌ・・・", vbCritical, "ニ・ナ莇﨔・" Exit Sub End If If Not lFso.FileExists(fileName) Then MsgBox "イサエ贇レクテホトシ」。", vbCritical, "ホトシエ﨔・" ' Exit Sub End If Set mPicFile = lFso.GetFile(fileName) nChunkSize = mPicFile.Size ReDim mFileBuffer(nChunkSize - 1)
Open fileName For Binary As #1
Get #1, , mFileBuffer
nLenLeft = 0 ' ヨリヨテホサメニ。」 Do While nLenLeft < nChunkSize varChunk = LeftB(RightB(mFileBuffer, nChunkSize - nLenLeft), ConChunkSize) fld.AppendChunk varChunk nLenLeft = nLenLeft + ConChunkSize Loop Close #1End Sub
接上面的: Public Sub SaveDBToPicFile(sFileName As String, fld As ADODB.Field) Dim bBuffer() As Byte Dim nLenLeft As Long Dim nChunkSize As Long
' If fld.ActualSize = 0 Then Exit Sub
Open sFileName For Binary Access Write As #2
nChunkSize = 32768 nLenLeft = fld.ActualSize
If nLenLeft < nChunkSize Then nChunkSize = nLenLeft End If
Do ReDim bBuffer(nChunkSize - 1) bBuffer = fld.GetChunk(nChunkSize)
nLenLeft = nLenLeft - nChunkSize If nLenLeft < nChunkSize Then nChunkSize = nLenLeft End If Put #2, , bBuffer Loop Until nLenLeft <= 0
Public Const BColor As Long = 13473132 'シエRGB(108, 149, 205)Public Sub SavePicToDB(fileName As String, fld As ADODB.Field)
Dim nLenLeft As Long
Dim nChunkSize As Long
Dim mPicFile As Scripting.File
Dim mFileBuffer() As Byte
Dim varChunk As Variant
Dim lFso As New FileSystemObject
Const ConChunkSize = 32768
If fld.Type <> adLongVarBinary Then
MsgBox "クテラヨカホイサハヌモテタエエ豢「ヘシミホ」ャヌ・・・", vbCritical, "ニ・ナ莇﨔・"
Exit Sub
End If
If Not lFso.FileExists(fileName) Then
MsgBox "イサエ贇レクテホトシ」。", vbCritical, "ホトシエ﨔・"
'
Exit Sub
End If
Set mPicFile = lFso.GetFile(fileName)
nChunkSize = mPicFile.Size
ReDim mFileBuffer(nChunkSize - 1)
Open fileName For Binary As #1
Get #1, , mFileBuffer
nLenLeft = 0 ' ヨリヨテホサメニ。」
Do While nLenLeft < nChunkSize
varChunk = LeftB(RightB(mFileBuffer, nChunkSize - nLenLeft), ConChunkSize)
fld.AppendChunk varChunk
nLenLeft = nLenLeft + ConChunkSize
Loop
Close #1End Sub
Public Sub SaveDBToPicFile(sFileName As String, fld As ADODB.Field)
Dim bBuffer() As Byte
Dim nLenLeft As Long
Dim nChunkSize As Long
'
If fld.ActualSize = 0 Then Exit Sub
Open sFileName For Binary Access Write As #2
nChunkSize = 32768
nLenLeft = fld.ActualSize
If nLenLeft < nChunkSize Then
nChunkSize = nLenLeft
End If
Do
ReDim bBuffer(nChunkSize - 1)
bBuffer = fld.GetChunk(nChunkSize)
nLenLeft = nLenLeft - nChunkSize
If nLenLeft < nChunkSize Then
nChunkSize = nLenLeft
End If Put #2, , bBuffer
Loop Until nLenLeft <= 0
Close #2 End Sub
--- 真的不能直接保存图片码?(就像用鼠标右键插入图片那样产生的直接保存图片的效果。)
请参考:
http://access911.net/index.asp?board=4&mode=3&recordid=75FAB21E12DC