既然能用Query查询出来,为什么还会没有记录那?
网络再慢也不会出现这种情况吧
建议查看打印的时候的数据是否是查询出来的!

解决方案 »

  1.   

    我是在一个按钮事件里用Query先执行插入的存储过程
    然后判断结果是否成功,如果成功
    再用Query到表里查询这条记录再送到打印机上,
    可问题就出在这了。票据居然打出来了,可回头到表里查这条记录居然没有。
    不知道怎么处理阿
      

  2.   

    事务问题。如果没提交,在同一个session中是能查到数据,所以打印出来了,但之后由于网络中断等原因,事务被回滚掉了,因此事后查不到记录。
      

  3.   

    我们是这样做的
    begin tran
    insert value
    comint tran
    select value  这个一定要放在commit 之后
    print如果你是这样做的数据不会丢
      

  4.   

    我是这样作的.
    begin tran
    insert value
    set @_error=@@Error
    if @_error=0 
    begin
       commint tran
      

  5.   

    我是这样作的.
    begin tran
    insert value
    set @_error=@@Error
    if @_error=0 
    begin
       commint tran
       set @Error='成功'
    end
    else
    begin
       Rollback tran
       set @Error='失败'
    end
    ---------------------
    然后在程序里判断存储过程的返回值
    if ='成功' then
    begin
      --print
    end
    else
    begin
      出错提示
    end可为什么能打出票据.然后查询交费记录却没有.......
      

  6.   

    你前台是不是也有事務啊!比如pb中,如果你在代碼中設置sqlca.autocommit=false,那麼即使存儲過程象你這麼寫,前臺也一定要commit,才能真正提交到數據庫.
      

  7.   

    写一个触发器,如有记录insert 就调用打印程序,如果没有就不让它打印,再就是你的程序有bug用户可能发现了你没有发现。
      

  8.   

    写一个触发器,如有记录insert 就调用打印程序,如果没有就不让它打印,再就是你的程序有bug用户可能发现了你没有发现。
      

  9.   

    楼上的可否说明白一点.
    我现在是这样作的:
    在程序里调用存储过程后判断返回值是否是成功
    if =成功
       print
    else
       报错
      

  10.   

    在程序里调用存储过程后判断返回值是否是成功
    if =成功
       print
    else
       报错!!那么必须是commit后才判断有没有纪录在里面?你的成功与否,不知道凭借什么条件来判断呢?换用trigger来做不是不行,问题是,按道理sp也应该是没有问题的,你如果sp在网速慢的时候不行的话,有bug没有查出来,说不定trigger也有类似的问题?按照你楼上写的概要程式,应该差不多是这样写,你的@Error如何返回,如何取!
      

  11.   

    在存储过程里增加一个判断 就知道是否是存储过程的问题了.如下
    begin tran
    insert value
    set @_error=@@Error
    if @_error=0 
    begin
       commint tran
       set @Error='成功'
    end
    else
    begin
       Rollback tran
       set @Error='失败'
    end
    --add----------------------------
    if not exists(select value)
    begin
      set @Error='怎么没了'
    end 你可以检查这个存储过程是否被其他存储过程的事务嵌套.
    多层事务嵌套也有可能导致这种问题.