各位高手请教大家一个问题怎么从ORACLE数据库里导出存储类型为二进制的像片为JPG格式呢?十万火急请大家帮忙了。

解决方案 »

  1.   

    OraField   是clob Dim PartDesc As OraClob           或blob Dim PartDesc As OraBlob
    Public Sub oraReadFromDB(Fd As OraField, ByRef FileName As String)
        Dim PartDesc As OraBlob
        Dim AmountRead As Long
        Dim buffer As Variant
        Dim buf As String
        Dim lpos As Long
        Set PartDesc = Fd.Value
        PartDesc.CopyToFile FileName
    End Sub
      

  2.   

    用Ado2.5以上版本中的stream
    '函数功能:将一个图片从数据库字段中读入到一个指定文件
    '参数说明:
    '         blobColumn:    存放图片的字段
    '         FileName:      图片文件所在路径
    Public Function ReadbolbToFile(blobColumn As ADODB.Field, ByVal FileName) As Boolean
    On Error GoTo ErrorHandle
    Dim msstream As ADODB.Stream
    Set msstream = New ADODB.Stream
    msstream.Type = adTypeBinary
    msstream.Open
    msstream.Write blobColumn.Value
    msstream.SaveToFile FileName, adSaveCreateOverWrite
    ReadbolbToFile = True
    Exit Function
    ErrorHandle:
            ReadbolbToFile = False
            MsgBox err.Description, vbCritical, "读图像数据出错!"
    End Function'函数功能:将一个图片文件存入数据库字段中
    '参数说明:
    '         blobColumn:    存放图片的字段
    '         FileName:      图片所在路径
    Public Function AppendBlobFromFile(blobColumn As ADODB.Field, ByVal FileName) As BooleanOn Error GoTo ErrorHandle
            AppendBlobFromFile = False
            Dim msstream As ADODB.Stream
            Set msstream = New ADODB.Stream
            msstream.Type = adTypeBinary
            msstream.Open
            msstream.LoadFromFile FileName
            blobColumn.Value = msstream.Read
            AppendBlobFromFile = True
            Exit Function
    ErrorHandle:
            AppendBlobFromFile = False
            MsgBox err.Description, vbCritical, "写图像数据出错!"
    End Function只是注意写图像到数据库里时,后面加一句<记录集>.update就行了.