本篇内容包括:
- SQL语句如何执行
- 如何将SQL检索到的结果传递回1宿主程序进行处理
- 静态SQL,SQL语句中的常量更换为变量
- 宿主程序如何知道SQL语句的执行状态是否发生错误
游标
游标:相当于指针,用于处理多行结果元组
游标的使用包括:
游标的声明
游标的打开
游标的数据处理
游标的关闭
游标的声明:
exec sql declare 游标名 cursor for select 列名 from 表名 where 条件
order by 列名( ASC / DESC )
for update /read only ;
游标的打开、关闭:
exec sql open 游标名;
exec sql close 游标名;
游标定义后可以重复打开处理关闭 打开处理关闭 打开处理关闭…
游标的数据处理:
exec sql fetch 游标名 into 宿主语言变量 ;
示例
可滚动游标
利用游标进行定位删除
exec sql delete from 表名 where current of 游标名
利用游标进行定位更新
exec sql update 表名 set 列名=‘字段’ where current of 游标名;
插入操作不使用游标
示例
(非完整程序)
异常状态捕获机制
什么是SQLCA
SQLCA是一个存储区域,将统计和错误从应用程序传递到数据库服务器再传回应用程序的每个数据库请求会使用它。SQLCA 用作应用程序到数据库的通信链接的句柄。
状态捕获语句
当满足condition条件时执行action动作
注意正确使用异常处理语句
一定要加上面的语句避免死循环