begin tran jk_tran
begin
insert into INFO values ('888')
--select * from INFO
end
if @@rowcount>0
begin
commit tran jk_tran
set @P_ERRMSG ='成功'
set @P_ID='SB'
set @P_MZHAO0='SBSB'
end
error:
if @@ROWCOUNT=0
begin
rollback tran jk_tran
set @P_ERRMSG ='失败'
end 这个存储过程,我用SQL server客户端直接执行,可以取出P_ERRMSG的值。但是用ODBC不行。
我执行存储过程方法如下:
declare @ERRMSG varchar(88)
exec proc_exec 0,@ERRMSG output
select @ERRMSG as MSGINFO用ODBC获取不到值,请问存储过程的查询函数应该怎么写?
begin
insert into INFO values ('888')
--select * from INFO
end
if @@rowcount>0
begin
commit tran jk_tran
set @P_ERRMSG ='成功'
set @P_ID='SB'
set @P_MZHAO0='SBSB'
end
error:
if @@ROWCOUNT=0
begin
rollback tran jk_tran
set @P_ERRMSG ='失败'
end 这个存储过程,我用SQL server客户端直接执行,可以取出P_ERRMSG的值。但是用ODBC不行。
我执行存储过程方法如下:
declare @ERRMSG varchar(88)
exec proc_exec 0,@ERRMSG output
select @ERRMSG as MSGINFO用ODBC获取不到值,请问存储过程的查询函数应该怎么写?
依次执行这三句?declare @ERRMSG varchar(88)
exec proc_exec 0,@ERRMSG output
select @ERRMSG as MSGINFO
比如这样:
$sql="declare @ERRMSG varchar(88)";
query($sql);
$sql="exec proc_exec 0,@ERRMSG output";
query($sql);
$sql="select @ERRMSG as MSGINFO";
query($sql);
我用上面的方法成功了。。(是我代码里的 多条语句合并成一条)declare @ERRMSG varchar(88)
exec proc_exec 0,@ERRMSG output
select @ERRMSG as MSGINFO
你的这个这样应该一样
retcode =SQLExecDirect(hstmt1, (SQLCHAR *)"declare @ERRMSG varchar(88) exec proc_exec 0,@ERRMSG output select @ERRMSG as MSGINFO",SQL_NTS);