esql/c (5)

zjpwm 2003-08-20 01:09:54
第 五 章 错误检测和恢复

本章我们介绍如何使用USERCA来进行错误检测和处理。

5.1 USERCA的结构
USERCA是ESQL程序用来传送执行信息的结构,每执行完一条执行性SQL语句, COBASE都把执行信息写入USERCA中,对于说明性SQL语句,则无执行信息.谨慎的程序员应该在每一SQL语句执行完成后,检查USERCA结构中内容来确信语句的执行是否成功,并根据其中的信息作适当的处理.在ESQL中,USERCA的结构如下:
typedef struct
char caid[10]; /* userca ID */
long calen; /* userca length */
long sqlcode; /* sql code */
long sqltype; /* sql statement type */
int sqlerrmlen; /* sql error message length */
char sqlerrmtext[80]; /* sql error message text */
int sqlreturnflag; /* sql return flag(def or data) */
long sqlpl; /* sql process lines (per fetch st) */
long sqlcoml; /* sql communication lines (per com) */
long sqltotal; /* select_total_lines */
char sqlwarn[7]; /* sql warnning flag */
short sqlstsave; /* sql_statement_save flag */
user_com_area;
struct user_com_area userca;

该结构的各元素的意义描述如下:
userca.caid 通讯区标识.
userca.calen 通讯区长度.
userca.sqlcode 记录每一SQL语句执行完成情况.其取值如下:
0 表示执行成功.
2000 表示没有返回行或最后一行已取完.

userca.sqltype SQL语句的类型.
userca.sqlerrmlen 执行SQL语句错误 信息的长度.
userca.sqlerrmtext 执行SQL语句错误 信息的正文.
userca.sqlreturnflag
userca.sqlpl
userca.sqlcoml
uaseca.sqltotal
userca.sqlwarn
userca.sqlwarn[0] 警告检查位;
userca.sqlwarn[1] 返回值截断警告;
userca.sqlwarn[2] 在集函数中忽略空值警告;
userca.sqlwarn[3] SELECT_LIST 个数与 INTO 子句项
个数不符的警告;
userca.sqlwarn[4] DML操作涉及每一行的警告;
userca.sqlwarn[5] SQL语句引起事务回滚的警告;
userca.sqlwarn[6] DELETE语句对于FOR_UPDATE的行操作警告;
userca.sqlstsave
...全文
55 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

1,194

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 Informix
社区管理员
  • Informix社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧