我们是这样做的 begin tran insert value comint tran select value 这个一定要放在commit 之后 print如果你是这样做的数据不会丢
我是这样作的. begin tran insert value set @_error=@@Error if @_error=0 begin commint tran
我是这样作的. 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可为什么能打出票据.然后查询交费记录却没有.......
楼上的可否说明白一点. 我现在是这样作的: 在程序里调用存储过程后判断返回值是否是成功 if =成功 print else 报错
在程序里调用存储过程后判断返回值是否是成功 if =成功 print else 报错!!那么必须是commit后才判断有没有纪录在里面?你的成功与否,不知道凭借什么条件来判断呢?换用trigger来做不是不行,问题是,按道理sp也应该是没有问题的,你如果sp在网速慢的时候不行的话,有bug没有查出来,说不定trigger也有类似的问题?按照你楼上写的概要程式,应该差不多是这样写,你的@Error如何返回,如何取!
在存储过程里增加一个判断 就知道是否是存储过程的问题了.如下 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 你可以检查这个存储过程是否被其他存储过程的事务嵌套. 多层事务嵌套也有可能导致这种问题.
然后判断结果是否成功,如果成功
再用Query到表里查询这条记录再送到打印机上,
可问题就出在这了。票据居然打出来了,可回头到表里查这条记录居然没有。
不知道怎么处理阿
begin tran
insert value
comint tran
select value 这个一定要放在commit 之后
print如果你是这样做的数据不会丢
begin tran
insert value
set @_error=@@Error
if @_error=0
begin
commint tran
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可为什么能打出票据.然后查询交费记录却没有.......
我现在是这样作的:
在程序里调用存储过程后判断返回值是否是成功
if =成功
print
else
报错
if =成功
print
else
报错!!那么必须是commit后才判断有没有纪录在里面?你的成功与否,不知道凭借什么条件来判断呢?换用trigger来做不是不行,问题是,按道理sp也应该是没有问题的,你如果sp在网速慢的时候不行的话,有bug没有查出来,说不定trigger也有类似的问题?按照你楼上写的概要程式,应该差不多是这样写,你的@Error如何返回,如何取!
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 你可以检查这个存储过程是否被其他存储过程的事务嵌套.
多层事务嵌套也有可能导致这种问题.