Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1634420
  • 博文数量: 201
  • 博客积分: 2812
  • 博客等级: 少校
  • 技术积分: 3029
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-18 18:28
个人简介

从事数据库工作多年,目前看好分布式NeSQL/HTAP数据库在企业客户市场的发展。未来的主要方向是——致力于 NewSQL/HTAP 数据库的推广普及。

文章存档

2016年(1)

2015年(8)

2014年(23)

2013年(50)

2012年(32)

2011年(87)

分类: Sybase

2014-02-18 10:33:47

      当我们编写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) |
给主人留下些什么吧!~~