使用ORACLE的OLE DB Provider

解决方案 »

  1.   

    对VB不太了解。这是java的blob插入的程序,你看看吧。
       /**
        * 向数据库中插入一个新的BLOB对象 List_Tail
        *
        * @param infile2 String 插入文件名
        * @param SC_No String
        * @throws Exception
        */
       public static void List_Tail_blobInsert(String infile2,String SC_No) throws Exception
       {
         DbConn m_dbConn;
         m_dbConn = new DbConn();
         oracle.jdbc.OracleResultSet rs = null;
         //System.out.println(infile1);
         System.out.println(infile2);
         //File file1 = new File(infile1);
         File file2 = new File(infile2);     /* 设定不自动提交 */
         m_dbConn.connection();
         boolean defaultCommit = m_dbConn.conn.getAutoCommit();
         m_dbConn.conn.setAutoCommit(false);     try {
           /* 插入一个空的BLOB对象 */
           //String sqlstr = "INSERT INTO NP_CONTENTSET  VALUES ('"+SC_No+"','','','','','','',EMPTY_BLOB(),EMPTY_BLOB())";
           //m_dbConn.stmt.executeUpdate(sqlstr);
           //System.out.println(sqlstr);
           /* 查询此BLOB对象并锁定 */
           String sqlstr = "SELECT LIST_Tail FROM NP_CONTENTSET WHERE SC_NO ='"+SC_No+"' FOR UPDATE";
           rs = (oracle.jdbc.OracleResultSet)m_dbConn.stmt.executeQuery(sqlstr);
           System.out.println(sqlstr);
            while (rs.next()) {
              /* 取出此BLOB对象 */
              //oracle.sql.BLOB blob1 = (oracle.sql.BLOB)rs.getBlob("LIST_HEAD");
              oracle.sql.BLOB blob2 = (oracle.sql.BLOB)rs.getBlob("LIST_TAIL");
              /* 向BLOB对象中写入数据 */
              //BufferedOutputStream out1 = new BufferedOutputStream(blob1.getBinaryOutputStream());
              //BufferedInputStream in1 = new BufferedInputStream(new FileInputStream(file1));
              BufferedOutputStream out2 = new BufferedOutputStream(blob2.getBinaryOutputStream());
              BufferedInputStream in2 = new BufferedInputStream(new FileInputStream(file2));
              int c2;
                /*while ((c1=in1.read())!=-1) {
                    out1.write(c1);
                    //System.out.println(String.valueOf(c1));
                }*/
                while ((c2=in2.read())!=-1) {
                  out2.write(c2);
                  //System.out.println("11111111");
                  //System.out.println(String.valueOf(c2));
                }
                //in1.close();
                //out1.close();
                in2.close();
                out2.close();
            }
            /* 正式提交 */
            m_dbConn.conn.commit();
         }
         catch (Exception ex) {
            /* 出错回滚 */
            m_dbConn.conn.rollback();
            throw ex;
        }
        /* 恢复原提交状态 */
       m_dbConn.conn.setAutoCommit(defaultCommit);
       m_dbConn.DBDisConn();
       }
      

  2.   

    Dim rn As New ADODB.Connection
    主要建立连接的时候需要相应的驱动程序,
    我知道vb.net中建立连接要这样写 dim rn as new system.data.oraclient.oracleconnection
    vb中肯定也需要相应的驱动,具体的我暂时手上没有资料