嵌套SQL语句访问DB2中SQLCA的调用技巧

在IBM的关系型数据库产品DB2中,使用SQL Communication Area(SQLCA)将程序中嵌套的SQL语句运行情况返回给程序。在程序中有针对性地对SQLCA实施调用,可对程序中各类SQL语句的执行结果实施控制,从而避免程序的意外终止。同时,也可以提高运行效率,减小系统开销和处理时间。本文将对此作一简要介绍。
SQLCA的结构
SQLCA的结构定义如下:
struc sqlca
{        unsigned char     sqlcaid[8];
long              sqlabc;
long              sqlcode;
short             sqlerrml;
unsigned char     sqlerrnmc[10];
unsigned char     sqlerrp[8];
long              sqlerrd[6];
unsigned char     sqlwarn[21];
unsigned char     sqlstate[5];        }
结构中各个域各有不同的含义和用途,部分域的功能和用途将在以下各小节中做详细探讨,其它一些域的含义如下:
sqlcaid:        标识性域,包含字符串“sqlca”.
Sqlabc:        包含sqlca结构的长度。
Sqlerrml:        包含sqlerrmc域中数据的实际长度。
Sqlerrmc:         由0或多个字串组成,它对返回的值给以一个更详细的解释。如返回的代码表示表没找到,则此域中包含未找到的表名。
Sqlerrp:         包含一些对用户无用的论断信息。
Sqlstate:         长度为5的字符串,它指示SQL语句的查询结果。与sqlca不同的是,它遵循ANSI/ISOSQL92的标准,所以,尽管不同数据库产品的sqlca结构中sqlcode域的含义不同,但sqlstate域的含义是相同的。
调用方法
DB2通过一个函数:sqlaintp,可以方便地读取sqlca中SQL语句执行后的结果和错误。此函数定义在sql.h中,可通过下述语句实现对其定义:
EXEC SQL INCLUDE sqlca.h 
Sqlaintp函数格式如下:
int sqlaintp
(        char  *buffer
short   buffer_size
short   line_width
struct  sqlca *sqlca        )
其中, buffer为存放了sqlca信息的缓冲区;buffer_size中存放了
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值