嵌入式SQL语句与主语言之间的通信
将SQL嵌入到高级语言中混合编程,SQL语句负责操纵数据库,高级语言语句负责控制逻辑流程,这时程序中含有二种不同的计算模式语句,他们之间如何通信呢?
数据库工作单元与源程序工作单元之间的通信主要包括:
1:向主语言传递SQL语句的执行状态信息,使主语言能够据此信息控制程序流程,主要用SQL通信区实现。
2:主语言向SQL语句提供参数,主要用主变量实现。
3:将SQL语句查询数据库的结果交给主语言处理,主要用主语言和游标cursor实现。
SQL通信区
SQL语句执行后,系统要反馈给应用程序若干信息,主要包括描述系统当前工作状况和运行环境的各种数据。这些信息将运送到SQL通信区,应用程序从SQL通信区中取出这些状态信息,据此决定接下来执行的语句。
SQL通信区在应用程序中用exec sql include sqlca加一定义。
主变量
嵌入式SQL语句可以使用主语言的程序变量来输入或输出数据,SQL语句中使用的主语言程序变量简称为主变量。主变量根据其作用的不同分为输入主变量和输出主变量,输入主变量由应用程序对其赋值,输出主变量由SQL语句对其赋值或设置状态信息,返回给应用程序。
游标
游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果,每个游标区都有一个名字,用户可以根据游标逐一获取记录并赋给主变量,交由主语言进一步处理。