Dim conn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim stmcon As New Stream
Dim strsql As String
conn.Open conStr    stmcon.Type = adTypeBinary
    stmcon.Open
    stmcon.LoadFromFile "F:\劳资照片\05106657.JPG"    If rst.State = adStateOpen Then rst.Close        strsql = "select * from  photo "        rst.Open strsql, conn, adOpenDynamic, adLockOptimistic
        rst.AddNew        rst.Fields("PHOTO").Value=stmcon.read
        
        rst.Update        stmcon.Close
        Set stmcon = Nothing
 以上代码中把jpg 格式的图片导入到oracle中,但是出现了错误,为什么啊?出现错误为不支持rst.addnew的方法啊

解决方案 »

  1.   

    你的表里只有 photo 一个字段吗?添加一条新记录,应该把其它字段的值也要填进去吧,不会只填photo一个字段吧?
    最好把出错的详细信息帖出来
      

  2.   

    改成这样试试:Dim conn As New ADODB.Connection
    Dim rst As New ADODB.Recordset
    Dim stmcon As New Stream
    Dim strsql As String
    conn.Open conStr
    conn.CursorLocation = adUseClient    stmcon.Type = adTypeBinary
        stmcon.Open
        stmcon.LoadFromFile "F:\劳资照片\05106657.JPG"    rst.CursorLocation = adUseClient
        If rst.State = adStateOpen Then rst.Close        strsql = "select * from  photo where 1=2"        rst.Open strsql, conn, adOpenStatic, adLockOptimistic, adCmdText
            rst.AddNew        rst.Fields("PHOTO").Value=stmcon.read
            
            rst.Update        stmcon.Close
            Set stmcon = Nothing
      

  3.   

    stmcon.LoadFromFile "F:\劳资照片\05106657.JPG"
    //这里是否会错?
      

  4.   

    stmcon.LoadFromFile "F:\劳资照片\05106657.JPG"
    从语法来看没错。
      

  5.   

    注意PHOTO字段的数据类型,在SQL数据库中为image, oracle没用过,也应该是二进制数据类型。
        strsql = "select * from  photo "
        rst.Open strsql, conn, adOpenDynamic, adLockOptimistic
        stmcon.Type = adTypeBinary
        stmcon.Open
        stmcon.LoadFromFile "F:\劳资照片\05106657.JPG"
        rst.AddNew
        rst.Fields("PHOTO").Value=stmcon.read
        rst.Update 
        
            
            
            
            stmcon.Close
            Set stmcon = Nothing
      

  6.   

    oracle没用过 在ORACLE中可以直接存图片吗!
      

  7.   

    把 Stream 全换成 ADODB.Stream
      

  8.   

    1.把 Stream 全换成 ADODB.Stream
    2.如 vbman2003(家人) 所说的,注意表字段的数据类型