1我在DELPHI中用ADOPROC连接ORACLE的程序包,遇到这样一个问题,每次调用完成后,事务就自动提交了,有没有什么地方可以设置不自动提交,需要人为的提交或者回滚呢?2。我想在DELPHI中用事务控制,结果也没有效,后来我改用ADOCOMAND来执行程序包,可以控制事务了,但是很遗憾,我怎么能在DELPHI中接收传出的参数呢?谢谢各位关注

解决方案 »

  1.   

    呵呵,虽然用oracle,但不用ADOPROC~~~
      

  2.   

    不过,可以提个方法供参考!
    自己构造sql语句到一个tstringlist中,一行一个。
    整个sql语句算一个事务,最后些个方法executesqllist(AStringList)就可以了!
    最后执行的时候可以象下面这样发送语句
    begin set transaction read write;
    sql1;
    sql2;
    .
    .
    commit; 
    end;
    提交执行!
      

  3.   

    你调用connection事务来控制storeproc,试一下。
    应该没问题
      

  4.   

    呵呵,谢谢了。可是我觉得需要这么复杂吗,PB中都有一个属性可以设置AUTOCOMMIT的植,DELPHI没有那么落后吧?
      

  5.   

    确实没有啊,这位兄弟你试过吗?--你调用connection事务来控制storeproc,试一下。应该没问题没有用,执行完后,自动提交了,
      

  6.   

    试试
    ADOStoredProc1.Connection.BeginTrans;
    ADOStoredProc1.ExecProc;
    然后:
    ADOStoredProc1.Connection.CommitTrans;  //commit

    ADOStoredProc1.Connection.Cancel; //rollback
      

  7.   

    keiy写的没错,你得adoconnection.begintrans;
    出错rollback,提交用committrans
    肯定没有问题。
      

  8.   

    谢谢兄弟的热情帮组再问问,怎样在delphi 中调用oracle数据库的函数呢,怎样接收其返回值和输出值?