给你一个函数
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

解决方案 »

  1.   

    我以前用过的一段代码
    试试看吧
    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