参数都对,存储的语句也正确执行了,就是不能返回得到的值
我是用dbexpress的TSqlStoredProcedure
参数用ptResult,和output都不能返回
create PROCEDURE dbo.sp_log
@vId int,
@vPer_name varchar(10),
@vOper_menu varchar(20)='',
@vOper_comp varchar(15)=''
AS
begin transaction
if @vId=0
insert into oper_log(per_name,oper_menu,oper_time,oper_computer)values(@vPer_name,@vOper_menu,{Fn Now()},@vOper_comp)
else
update oper_log set oper_endtime={Fn Now()}, operate=@vPer_name where oper_id=@vId
commit
return @@identity我已经查过了论坛很多例子,都不行的
用Ado可以返回值
我是用dbexpress的TSqlStoredProcedure
参数用ptResult,和output都不能返回
create PROCEDURE dbo.sp_log
@vId int,
@vPer_name varchar(10),
@vOper_menu varchar(20)='',
@vOper_comp varchar(15)=''
AS
begin transaction
if @vId=0
insert into oper_log(per_name,oper_menu,oper_time,oper_computer)values(@vPer_name,@vOper_menu,{Fn Now()},@vOper_comp)
else
update oper_log set oper_endtime={Fn Now()}, operate=@vPer_name where oper_id=@vId
commit
return @@identity我已经查过了论坛很多例子,都不行的
用Ado可以返回值
up
create PROCEDURE dbo.sp_log
@vId int,
@vPer_name varchar(10),
@vOper_menu varchar(20)='',
@vOper_comp varchar(15)='',
@myId tinyint out
AS
begin transaction
if @vId=0
insert into oper_log(per_name,oper_menu,oper_time,oper_computer)values(@vPer_name,@vOper_menu,{Fn Now()},@vOper_comp)
else
update oper_log set oper_endtime={Fn Now()}, operate=@vPer_name where oper_id=@vId
commit
set @myId=@@identity
我试过一样的,同样ado都可以
换成
select @as_bkzh1=@as_bkzh
如:存储过程头为: create procedure get_bkzh
(@as_rno char(10),@as_bkzh1 char(20) output//一定要先定义好,并设置类型)
这是sybase的用法,你可以试试
加了一句就可以了set nocount on
帮助别人就是帮助自己
可以安心过年了,祝大家春节快乐!