求教,如何使用事务向不同数据库中插入数据?数据库为ORACLE

解决方案 »

  1.   

    使用Enterprise Libray:            
    Database db = DatabaseFactory.CreateDatabase();
                DbCommand dbcomm1 = db.GetSqlStringCommand("insert into issue1 () values ()");
                DbCommand dbcomm2 = db.GetSqlStringCommand("insert into issue2 () values()");            using (DbConnection conn = db.CreateConnection())
                {
                    //打开连接
                    conn.Open();
                    //创建事务
                    DbTransaction trans = conn.BeginTransaction();                try
                    {
                        db.ExecuteNonQuery(dbcomm1);                    db.ExecuteNonQuery(dbcomm2);                    //都执行成功则提交事务
                        trans.Commit();
                    }
                    catch(Exception)
                    {
                        //发生异常,事务回滚
                        trans.Rollback();
                    }
                    //关闭连接
                    conn.Close();
      

  2.   

    在A-Oracle服务器上建立B服务器的连接,然后当A服务器插入数据的时候通过此连接对B数据库进行操作。
      

  3.   

    大家可能理解错了,我要插入的表是来自不同的数据库,因此用一个conn是不可以的
      

  4.   

    请问lxztj1983() ,如何使用Enterprise Libray连接不同的数据库,我对Enterprise Libray不太了解
      

  5.   

    conn是一个数据库连接啊,我连接的是两个不同的数据库,conn.BeginTransaction()是一个数据库的事务啊
      

  6.   

    在A服务器上建立B服务器的连接,然后同时插入即可
    如 a表在A服务器,b表在B服务器
    B服务器在A服务器上的连接名为@lgl
    那么在A服务器上插入这两张表:
    insert into a (...) values (...)
    insert into b@lgl(...) values (...)
      

  7.   

    lxh023(快乐是短暂的)能具体说一下吗,有点不太明白具体步骤
      

  8.   

    为什么要在程序里面写呢
    在一个数据库里面写个存储过程不就可以了吗create proc p_XXX
    as
    begin tran
    insert into table1()values()
    insert into db2.dbo.table2()values();
    commit tran
      

  9.   

    是两个不同的数据库,大哥!!
    解决方法已经找到了,大家可以参考一下
    http://cache.baidu.com/c?word=%B4%E6%B4%A2%3B%B9%FD%B3%CC%2C%BF%E7%3B%CA%FD%BE%DD%3B%BF%E2%3B%CA%C2%CE%F1&url=http%3A//roping%2Ecnblogs%2Ecom/&p=9b769a438b8c5bf812bd9b7c57&user=baidu#baidusnap2