请问INTERBASE中如何在存储过程中获取SQLCODE(200分)

  • 主题发起人 主题发起人 romi
  • 开始时间 开始时间
R

romi

Unregistered / Unconfirmed
GUEST, unregistred user!
我有以下两个问题:
1 如何在存储过程中得到SQLCODE(相当于MS SQL SERVER 的@@error)的值?
2 如何在存储过程中使用SET TRANSACTION
这两个问题均包含在以下的存储过程中,下面所列的存储过程是基于MS SQL SERVER 的。现在我要将其转换到INTERBASE下。

create procedure GetStuID(
@IDKind SmallInt,
@NewID Int output)
as
select NewID=MaxID from TmpID where IDKind = @ID

begin tran
select @NewID = @NewID+1
update TmpID set MaxID = @NewID where IDKind = @ID

if @@error=0
commit tran
else
begin
select @NewID = -1
rollback
end
end
return

不知哪位能帮忙将上面的代码转换到INTERBASE上?
 
可惜只熟SQL7
 
跟adminis一样
呵呵
 
我也只是关注.
 
我也只熟SQL.
 
参考一下这个
CREATE PROCEDURE ADD_EMP_PROJ (
EMP_NO SMALLINT,
PROJ_ID CHAR(5)
) AS
BEGIN
BEGIN
INSERT INTO employee_project (emp_no, proj_id) VALUES (:emp_no, :proj_id);
WHEN SQLCODE -530 DO
-------
EXCEPTION unknown_emp_id;
END
SUSPEND;
END

 
如果用 E-SQL/C + informix 这不算问题

$INCLUDE SQLCA;
$SELECT * FROM T1;
switch SQLCODE {
case 0: printf("OK/n"); break;
case 100: printf("No Rows/n"); break;
default: printf("Error!!!/n");
}
 
多人接受答案了。
 
后退
顶部