请在授权时更正代码显示错误 [英] pls correct the code when authorise it shows error

查看:66
本文介绍了请在授权时更正代码显示错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 创建  table  tbl_cyl_gas_master 

serial_no int
gas_name varchar 50 ),
tran_stat varchar 50 ))



  alter   procedure  gas 

@ action varchar 20 ),
@ serial_no int
@ gas_name varchar 50 ),
< span class =code-sdkkeyword> @ tran_stat varchar 50

as
开始

选择 @ tran_stat =( CASE WHEN @ action = ' ADD' 然后 ' FR'
何时 @ action = ' 更新' 然后 ' FR'
@ action = ' 授权' 然后 ' AU'
else ' DE'
end
- 声明@trannew varchar(10),

if @ action = ' 添加'
开始
插入 进入 tbl_Cyl_gas_master @ gas_name @ tran_stat
end
else if @行动= ' 更新'
开始

如果 @ tran_stat == ' FR'&& @serial_no == @ serial_no

update tbl_Cyl_gas_master set gas_name = @ gas_name < span class =code-keyword>其中 serial_no = @ serial_no

else

< span class =code-keyword> RAISERROR (' 交易不是新鲜的' 16 1 );

end
else if @ action = ' 授权'
开始
- 从tbl_cyl_gas_master中选择@tran_stat,其中serial_no = @ serial_no
如果 @ tran_stat = ' FR'

update tbl_Cyl_gas_master set tran_stat = @ tran_stat 其中​​ serial_no = @ serial_no


else

RAISERROR (' 交易已授权',< span class =code-digit> 16 , 1


结束
else
delete gas_name 来自 tbl_Cyl_gas_master 其中 serial_no = @ serial_no

结束

解决方案

代码修改很少:



试试这个

 CREATE程序gas 

@action varchar(20),
@serial_no int,
@gas_name varchar(50),
@tran_stat varchar(50)

as
begin
select @tran_stat =(CASE WHEN @ action ='ADD'then'FR '@ action ='更新',然后是'FR',当@ac时tion ='授权'然后'AU'
其他'DE'结束)
--declare @trannew varchar(10),

if @ action ='Add'
begin
插入tbl_Cyl_gas_master(gas_name,tran_stat)值(@ gas_name,@ tran_stat)
结束
否则如果@ action ='更新'
开始
如果((@tran_stat ='FR')AND(@ serial_no = @ serial_no))
update tbl_Cyl_gas_master set gas_name = @ gas_name其中serial_no = @ serial_no
else
RAISERROR('交易不是新鲜的,16,1);
结束
否则如果@ action ='授权'
开始
如果@tran_stat ='FR'
更新tbl_Cyl_gas_master set tran_stat = @ tran_stat其中serial_no = @ serial_no
else
RAISERROR('交易已经授权',16,1)
结束
否则
从tbl_Cyl_gas_master删除gas_name其中serial_no = @ serial_no
结束
GO






替换此行:

 如果  @ tran_stat  == < span class =code-string>'  FR'&& @serial_no == @ serial_no 



这个:

   if  @ tran_stat  = '  FR'   @ serial_no  =  @ serial_no  



此行:

 插入 进入 tbl_Cyl_gas_master  @ gas_name  @ tran_stat 



这个:

  插入 < span class =code-keyword> into  tbl_Cyl_gas_master(gas_name,tran_stat) values  @ gas_name  @tran_stat  


create table tbl_cyl_gas_master
(
serial_no int,
gas_name varchar(50),
tran_stat varchar(50))


alter procedure gas
(
@action varchar(20),
@serial_no int,
@gas_name varchar(50),
@tran_stat varchar(50)
)
as
begin
      
       select @tran_stat =(CASE WHEN @action='ADD' then 'FR'
                                                         when @action='Update' then 'FR'
                                                         when @action='Authorise' then 'AU'
                                                         else 'DE'
                                                end )
       --declare @trannew varchar(10),
      
if @action='Add'
       begin
       insert into tbl_Cyl_gas_master values (@gas_name,@tran_stat)
       end
else if @action='Update'
       begin
             
              if @tran_stat == 'FR' && @serial_no==@serial_no
             
                     update tbl_Cyl_gas_master set gas_name=@gas_name where serial_no=@serial_no
             
              else
      
                     RAISERROR ('Transaction not is fresh',16,1);
             
       end
else if @action='Authorise'
       begin
              --select @tran_stat from tbl_cyl_gas_master where serial_no=@serial_no
              if @tran_stat = 'FR'
             
                     update tbl_Cyl_gas_master set tran_stat=@tran_stat where serial_no=@serial_no
             
             
              else
                    
                     RAISERROR ('Transaction already Authorised',16,1)
             
                          
       end
else
       delete gas_name from tbl_Cyl_gas_master where serial_no=@serial_no
 
end

解决方案

Little modifications in your code:

Try this

CREATE procedure gas
(
@action varchar(20),
@serial_no int,
@gas_name varchar(50),
@tran_stat varchar(50)
)
as
begin
select @tran_stat =(CASE WHEN @action='ADD' then 'FR' when @action='Update' then 'FR' when @action='Authorise' then 'AU'
else 'DE' end )
--declare @trannew varchar(10),

if @action='Add'
begin
	insert into tbl_Cyl_gas_master(gas_name,tran_stat) values (@gas_name,@tran_stat)
end
else if @action='Update'
begin
	if ((@tran_stat = 'FR') AND (@serial_no=@serial_no))
		update tbl_Cyl_gas_master set gas_name=@gas_name where serial_no=@serial_no
	else
		RAISERROR ('Transaction not is fresh',16,1);
	end
else if @action='Authorise'
	begin
	if @tran_stat = 'FR'
		update tbl_Cyl_gas_master set tran_stat=@tran_stat where serial_no=@serial_no
	else
		RAISERROR ('Transaction already Authorised',16,1)
	end
else
	delete gas_name from tbl_Cyl_gas_master where serial_no=@serial_no
end
GO


Hi,

Replace this line:

if @tran_stat == 'FR' && @serial_no==@serial_no


with this:

if (@tran_stat = 'FR' and @serial_no = @serial_no)


and this line:

insert into tbl_Cyl_gas_master values (@gas_name,@tran_stat)


with this:

insert into tbl_Cyl_gas_master (gas_name, tran_stat) values (@gas_name, @tran_stat)


这篇关于请在授权时更正代码显示错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆