当我们编写sql脚本、存储过程时经常需要判断SQL语句是否执行成功。在IQ数据库中,有两种简单方法进行判断:
(1) 使用全局变量@@error
熟悉ASE数据库的开发人员对这个全局变量并不陌生,如果@@error返回小于0的值表示语句执行发生错误。在IQ中,@@error返回码比较粗略,并不能精细化的反映出具体的错误码,只能用于粗略的成功与否判断。
(2) 使用全局变量sqlcode
sqlcode在iq中是保留字,是系统定义的全局变量,用于精细化的表达语句执行的状态码。开发人员可以使用它进行精细化的控制。
需要注意的是:无论使用上面的哪种方法,都应该在需要在一条SQL语句执行完后立即对@@error或sqlcode变量进行检查判断。
我们看一个例子:
--创建测试表
create table t1 (id int primary key , age tinyint);
--插入一条数据
insert into t1 values(1,30);
--插入第2条数据
insert into t1 values(1,20);
这条语句由于插入了重复的键值,一次执行不成功。紧接着执行如下语句可以看到错误码和错误消息:
select sqlcode, errormsg(sqlcode)
阅读(2110) | 评论(0) | 转发(0) |