图片要保存到数据库的二进制类型字段中,用ADO或DAO的AppendChunk 方法
Dim DataFile As Integer, Fl As Long, Chunks As Integer, Fll As Long
Dim Fragment As Integer, Chunk() As Byte, i As Integer, n As Integer, ii As Integer
Dim mField As String
Const ChunkSize As Integer = 6384
Err = 0
On Error GoTo errHand
Open 图象文件For Binary Access Read As DataFile
Fl = LOF(DataFile)
If Fl = 0 Then Close DataFile: Exit Function
n = 1
Fll = Fl
i = Int(Fll / 5000784) + 1
Do While i >= 1
If Fll > 5000784 Then
Fl = 5000784
Fll = Fll - 5000784
Else
Fl = Fll
End If
mField = "内容" & n
Chunks = Fl \ ChunkSize
Fragment = Fl Mod ChunkSize
ReDim Chunk(Fragment)
Get DataFile, , Chunk()
recTemp.Fields(mField).AppendChunk Chunk()
ReDim Chunk(ChunkSize)
For ii = 1 To Chunks
Get DataFile, , Chunk()
recTemp.Fields(mField).AppendChunk Chunk()
Next ii
i = i - 1
n = n + 1
Loop
recTemp.Update
Close DataFile
Dim DataFile As Integer, Fl As Long, Chunks As Integer, Fll As Long
Dim Fragment As Integer, Chunk() As Byte, i As Integer, n As Integer, ii As Integer
Dim mField As String
Const ChunkSize As Integer = 6384
Err = 0
On Error GoTo errHand
Open 图象文件For Binary Access Read As DataFile
Fl = LOF(DataFile)
If Fl = 0 Then Close DataFile: Exit Function
n = 1
Fll = Fl
i = Int(Fll / 5000784) + 1
Do While i >= 1
If Fll > 5000784 Then
Fl = 5000784
Fll = Fll - 5000784
Else
Fl = Fll
End If
mField = "内容" & n
Chunks = Fl \ ChunkSize
Fragment = Fl Mod ChunkSize
ReDim Chunk(Fragment)
Get DataFile, , Chunk()
recTemp.Fields(mField).AppendChunk Chunk()
ReDim Chunk(ChunkSize)
For ii = 1 To Chunks
Get DataFile, , Chunk()
recTemp.Fields(mField).AppendChunk Chunk()
Next ii
i = i - 1
n = n + 1
Loop
recTemp.Update
Close DataFile
就是根据数据库的关键字计算一个唯一的图片存放路径,举个例子,比如你的数据库中有一个ID关键字段,“A00101”,那么你可以根据这个字段进行分解,按A建立一个目录,然后在A的下面取A后3个数字001建立一个目录,把01作为文件名进行存放,这样一个ID就唯一的确定了一张图片的位置,这是我经常使用的一个办法,你认为如何