Dim RS As New ADODB.Recordset Dim Chunk() As Byte Const
ChunkSize As Integer = 2384 Dim DataFile As Integer, Chunks, Fragment
As Integer Dim MediaTemp As String Dim lngOffset, lngTotalSize As
Long Dim i As
Integer 1、从数据库中显示所需要的图片
第一步首先打开数据库,看有没有要查找的内容,有则继续执行,没有就退出
RS.Source = "select * from Info Where Name='" & sparaName
&"';" RS.ActiveConnection =
"UID=;PWD=;DSN=TestDB;" RS.Open If RS.EOF Then RS.cCose : Exit
Sub 第二步,读出长二进制数据即图片数据,把它转换成图片文件,操作过程如下
MediaTemp = strPath & "picturetemp.tmp" DataFile = 1 Open
MediaTemp For Binary Access Write As DataFile lngTotalSize =
RS!MyPhoto.ActualSize Chunks = lngTotalSize \ ChunkSize Fragment =
lngTotalSize Mod ChunkSize ReDim Chunk(Fragment) Chunk() =
RS!MyPhoto.GetChunk(Fragment) Put DataFile, , Chunk() For i = 1 To
Chunks ReDim Chunk(ChunkSize) Chunk() =
RS!MyPhoto.GetChunk(ChunkSize) Put DataFile, , Chunk() Next
i Close
DataFile 第三步,关闭数据库,这样就可以显示所要的图片了。
RS.Close If MediaTemp = "" Then Exit Sub Picture1.Picture =
LoadPicture(MediaTemp) If Picture1.Picture = 0 Then Exit
Subj 2、向数据库中添加需要存储的图片
RS.Source = "select * from Info ;" RS.CursorType =
adOpenKeyset RS.LockType = adLockOptimistic RS.ActiveConnection =
"UID=;PWD=;DSN=TestDB;" RS.Open 第二步,把要存储的图片转换成二进制长文件存入数据库中,操作过程如下
RS.AddNew DataFile = 1 Open strPathPicture For Binary Access
Read As DataFile FileLen = LOF(DataFile) ' 文件中数据长度 If FileLen = 0
Then : Close DataFile : RS.Close : Exit Sub Chunks = FileLen \
ChunkSize Fragment = FileLen Mod ChunkSize ReDim
Chunk(Fragment) Get DataFile, , Chunk() RS!MyPhoto.AppendChunk
Chunk() ReDim Chunk(ChunkSize) For i = 1 To Chunks Get DataFile,
, Chunk() RS!MyPhoto.AppendChunk Chunk() Next i Close
DataFile 第三步,更新纪录后,关闭数据库,就完成了数据图片到数据库的存储。
RS.Update RS.Close Set RS =
Nothing 两种方法在使用方面各有所长,读者可以针对自己的情况做出合理的选择。
没有相关教程