|
知识路径: > 数据库技术 > 数据库标准语言—SQL > 嵌入式SQL > SQL与宿主语言接口 >
|
相关知识点:2个
|
|
|
|
|
SQL通信区(SQL Communication Area,SQLCA)向主语言传递SQL语句执行的状态信息,使主语言能够根据此信息控制程序流程。
|
|
|
|
主变量也称共享变量。主语言向SQL语句提供参数主要通过主变量,主变量由主语言的程序定义,并用SQL的DECLARE语句说明。例如在C语言中可用如下形式说明主变量:
|
|
|
|
上面五行组成一个说明节,说明了五个共享变量,其中,SQLSTATE是一个特殊的共享变量,起着解释SQL语句执行状况的作用。当SQL语句执行成功时,系统自动给SQLSTATE赋上全零值,否则为非全零(“02000”)。因此,当执行一条SQL语句后,可以根据SQLSTATE的值转向不同的分支,以控制程序的流向。引用时,为了与SQL属性名相区别,需在主变量前加“:”。
|
|
|
从上例中可以看出,VALUES子句中通常可使用主变量传递输入数据。
|
|
|
|
SQL语言是面向集合的,一条SQL语句可产生或处理多条记录。而主语言是面向记录的,一组主变量一次只能放一条记录,所以,引入游标,通过移动游标指针来决定获取哪一条记录。与游标相关的SQL语句有四条:
|
|
|
|
|
这是一条说明性语句,定义中的SELECT语句并不立即执行。
|
|
|
|
|
该语句执行游标定义中的SELECT语句,同时游标处于活动状况。游标是一个指针,此时指向查询结果的第一行之前。
|
|
|
|
|
该语句使用时,游标推进一行,并把游标指向的行(称为当前行)中的值取出,送到共享变量中。变量表由用逗号分开的共享变量组成。该语句常置于宿主语言程序的循环结构中,并借助宿主语言的处理语句逐一处理查询结果中的一个元组。
|
|
|
|
|
该语句关闭游标,使它不再和查询结果相联系。关闭了的游标,可以再次打开,与新的查询结果相联系。在游标处于活动状态时,可以修改和删除游标指向的元组。
|
|
|