给你一个函数
Public Sub AppendChunkByteExample(FName As String, strColumeNmae As String, strSql As String)
Dim NumChunks As Integer, RemChunkSize As Integer
Dim TotalSize As Long, CurChunkByte() As Byte Dim i As Integer, FNum As Integer, ChunkSize As Integer
Dim OraDynaset As Object
ChunkSize = 10240 Set OraDynaset = OraDatabase.CreateDynaset(strSql, 0)
FNum = FreeFile
Open FName For Binary As #FNum
TotalSize = LOF(FNum)
NumChunks = TotalSize / ChunkSize
OraDynaset.Edit
RemChunkSize = TotalSize Mod ChunkSize
For i = 0 To NumChunks
If i = NumChunks Then
ChunkSize = RemChunkSize
End If
ReDim CurChunkByte(ChunkSize)
Get #FNum, , CurChunkByte
OraDynaset.Fields(strColumeNmae).AppendChunk (CurChunkByte)
Next i
OraDynaset.Update
Close FNum
Kill (FName)
End Sub
Public Sub AppendChunkByteExample(FName As String, strColumeNmae As String, strSql As String)
Dim NumChunks As Integer, RemChunkSize As Integer
Dim TotalSize As Long, CurChunkByte() As Byte Dim i As Integer, FNum As Integer, ChunkSize As Integer
Dim OraDynaset As Object
ChunkSize = 10240 Set OraDynaset = OraDatabase.CreateDynaset(strSql, 0)
FNum = FreeFile
Open FName For Binary As #FNum
TotalSize = LOF(FNum)
NumChunks = TotalSize / ChunkSize
OraDynaset.Edit
RemChunkSize = TotalSize Mod ChunkSize
For i = 0 To NumChunks
If i = NumChunks Then
ChunkSize = RemChunkSize
End If
ReDim CurChunkByte(ChunkSize)
Get #FNum, , CurChunkByte
OraDynaset.Fields(strColumeNmae).AppendChunk (CurChunkByte)
Next i
OraDynaset.Update
Close FNum
Kill (FName)
End Sub
试试看吧
Private Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long'*************************************************************
Public Function ImportPhoto(sPicFile As String, sEmpID As String) As String
Dim rcsPic As ADODB.Recordset
Dim sMax As String
Dim sInsertPic As String
Dim rcsTemp As New Recordset
Dim sTempSQL As String If Trim(sPicFile) = "" Then Exit Function On Error GoTo ErrorImportPhoto Set rcsPic = New ADODB.Recordset
rcsPic.CursorType = adOpenKeyset
rcsPic.LockType = adLockOptimistic ' rcsPic.Open "T_PPICTURE ", AstDbCnt, , , adCmdTable Set mStream = New ADODB.Stream
mStream.Type = adTypeBinary
mStream.Open
mStream.LoadFromFile sPicFile rcsPic.AddNew
rcsPic.Fields("PERS").Value = sEmpID
rcsPic.Fields("PIC").Value = mStream.Read
rcsPic.Update mStream.Close
Set mStream = Nothing
rcsPic.Close
Set rcsPic = NothingExit Function
ErrorImportPhoto:
ImportPhoto = "FALSE"
End Function
//注意要将 AstDbCnt 替换为你的oracle 连接Public Function DisplayPhoto(oPicture As PictureBox, sPicID As String)
Dim rcsDisplay As ADODB.Recordset
Set rcsDisplay = New ADODB.Recordset
Dim mStream As ADODB.Stream
Dim mc0 As String
rcsDisplay.Open "Select * from T_PPICTURE where PERS = '" & sPicID & "'", AstDbCnt, adOpenKeyset, adLockOptimistic If rcsDisplay.EOF Then
oPicture.Picture = LoadPicture()
Exit Function
End If
If IsNull(rcsDisplay.Fields("PIC").Value) Then
oPicture.Picture = LoadPicture()
Exit Function
End If
Set mStream = New ADODB.Stream mStream.Type = adTypeBinary mStream.Open mStream.Write rcsDisplay.Fields("PIC").Value
strclose = App.Path & "\AstPhoto_temp"
DeleteFile (strclose)
mStream.SaveToFile strclose
mStream.Close
Set mStream = Nothing
rcsDisplay.Close
Set rcsDisplay = Nothing
oPicture.Picture = LoadPicture(strclose)
End Function