对SQLServer我不是很熟悉,你这里好像需要显式得开始一个事务才行。

解决方案 »

  1.   

    去掉where子句后的分号,可以消除报错
      

  2.   

    to mashansj(风影) 
    你的办法不行的啦
    还是报错
    我还是去掉commit吧
      

  3.   

    PB中的事务怎么管理的,是不是得在delete之前加上begin transaction
      

  4.   

    在删除数据时建立一个transaction
    begin transaction
    delete..........
    commit transaction/rollback transaction
    这样比较安全规范
      

  5.   

    你用的是什么数据库.是ORACLE吗?
    如果是SQLSERVER就不用写COMMIT.
      

  6.   

    我想也可以用PB自带的 commit using sqlca;吧,估计是,可以试一下
      

  7.   

    sqlca.autocommit = false;
    DELETE FROM order_buy  
                where order_buy.order_no=:ls_data_no;
    if sqlca.sqlcode <> then
    messagebox('','失敗');
    rollback;
    else
    messagebox('','成功');
    commit;
    end if
    sqlca.autocommit = true;
      

  8.   

    我一直用PB连ORACLE数据库,都没有出现COMMIT错误的问题;
    只有SQLSERVER才会出现此问题.
      

  9.   

    你是否在前面使用了sqlca.autocommit = true?
      

  10.   

    多谢各位
    竹之草兄的方法是正确的。
    to szsusuia(丁曼)
    我用的的确是SQL Server,多谢指点!:)