我在程序中需要将本地数据库和通过数据库链路连接的数据库的两张表的内容插入到本地的另一张表中。
我的过程如下:
as
begin
delete from tempmanbaoxiao;
insert into tempmanbaoxiao select * from manbaoxiao;
insert into tempmanbaoxiao select * from manbaoxiao@gongshu; --本行错误
end;我在SQL PLUS中运行的上面的过程通过,但在DELPHI调用时提示:ORA-02041:客户数据库未开始一个事务处理请问在程序中如何实现?解决后高分向送,急急急!
也可以给我EMAIL:[email protected]
万分感谢。

解决方案 »

  1.   

    DELPHI中你怎么写的呀, 、贴出来看看
      

  2.   

    首先这么操作的时候必须要建立database.starttransaction,然后database.committransaction。另外oracle这么用必须建立link文件才可以不是任何地方都可以执行的,看看oracle的数吧
      

  3.   

    select * from manbaoxiao@gongshu的时候,实际上和另一个数据库建立了连接,你在oracle的sqlplus里面先测试是否可以成功,然后在考虑delphi里面的问题。
    这个数据库链路最好是针对特定用户的,而且select * from manbaoxiao的oracle用户和
    你连接的数据库的用户是一样的,且有权限。
      

  4.   

    需要什么权限呢?
    我在delphi就直接运行storedproc,其名字就是我在oracle定义的过程名字
      

  5.   

    小弟解决了,我原来使用ORACLE的数据库驱动程序,改用OLE DB后能启动客户端事务。
    但还是不太理解其中的原因。
    谢谢各位。