全部科目 > 数据库系统工程师 >
2010年上半年 上午试卷 综合知识
第 49 题
知识点 SQL与宿主语言接口   嵌入式SQL  
关键词 SQL语句   参数传递   嵌入式   主语言   语言  
章/节 数据库标准语言—SQL  
 
 
嵌入式SQL中通过(49)实现主语言与SQL语句间进行参数传递;SQL语句的执行状态通过(50)传递给主语言来进行流程控制;对于返回结果为多条记录的SQL语句,通过(51)来由主语言逐条处理。
 
  A.  主变量
 
  B.  游标
 
  C.  SQLCA
 
  D.  数据集




 
 
相关试题     数据库标准语言—SQL 

  第43题    2009年上半年  
某超市的商品(商品号,商品名称,生产商,单价)和仓库(仓库号,地址,电话,商品号,库存量)两个基本关系如表1和表2所示。


  第56题    2019年上半年  
下面说法错误的是( )。

  第40题    2018年上半年  
给定教师关系 Teacher(T_no, T_name, Dept_name, Tel),其中属性T_no、T_name、Dept_name和Tel的含义分别为教师号、教师姓名、学院名和电话。用SQL创建一个&l..

 
知识点讲解
· SQL与宿主语言接口
· 嵌入式SQL
 
        SQL与宿主语言接口
        SQL提供了将SQL语句嵌入某种高级语言中的使用方式,但是如何识别嵌入在高级语言中的SQL语句,通常采用预编译的方法。该方法的关键问题是必须区分主语言中嵌入的SQL语句,以及主语言和SQL间的通信问题。采用的方法由DBMS的预处理程序对源程序进行扫描,识别出SQL语句,把它们转换为主语言调用语句,以使主语言编译程序能识别它,最后由主语言的编译程序将整个源程序编译成目标码。
        可见将SQL嵌入主语言使用时应当注意如下问题。
               区分主语言语句与SQL语句
               为了区分主语言语句与SQL语句,需要在所有的SQL语句前加前缀EXEC SQL,而SQL的结束标志随主语言的不同而不同。
               例如,PL/1和C语言的引用格式为:EXEC SQL
               又如,COBOL语言的引用格式为:EXEC SQLEND-EXEC。
               主语言工作单元与数据库工作单元通信
                      SQL通信区
                      SQL通信区(SQL Communication Area,SQLCA)向主语言传递SQL语句执行的状态信息,使主语言能够根据此信息控制程序流程。
                      主变量
                      主变量也称共享变量。主语言向SQL语句提供参数主要通过主变量,主变量由主语言的程序定义,并用SQL的DECLARE语句说明。例如在C语言中可用如下形式说明主变量:
                      
                      上面五行组成一个说明节,说明了五个共享变量,其中,SQLSTATE是一个特殊的共享变量,起着解释SQL语句执行状况的作用。当SQL语句执行成功时,系统自动给SQLSTATE赋上全零值,否则为非全零(“02000”)。因此,当执行一条SQL语句后,可以根据SQLSTATE的值转向不同的分支,以控制程序的流向。引用时,为了与SQL属性名相区别,需在主变量前加“:”。
                      从上例中可以看出,VALUES子句中通常可使用主变量传递输入数据。
                      游标
                      SQL语言是面向集合的,一条SQL语句可产生或处理多条记录。而主语言是面向记录的,一组主变量一次只能放一条记录,所以,引入游标,通过移动游标指针来决定获取哪一条记录。与游标相关的SQL语句有四条:
                      (1)定义游标,格式如下:
                      
                      这是一条说明性语句,定义中的SELECT语句并不立即执行。
                      (2)打开游标,格式如下:
                      
                      该语句执行游标定义中的SELECT语句,同时游标处于活动状况。游标是一个指针,此时指向查询结果的第一行之前。
                      (3)推进游标,格式如下:
                      
                      该语句使用时,游标推进一行,并把游标指向的行(称为当前行)中的值取出,送到共享变量中。变量表由用逗号分开的共享变量组成。该语句常置于宿主语言程序的循环结构中,并借助宿主语言的处理语句逐一处理查询结果中的一个元组。
                      (4)关闭游标,格式如下:
                      
                      该语句关闭游标,使它不再和查询结果相联系。关闭了的游标,可以再次打开,与新的查询结果相联系。在游标处于活动状态时,可以修改和删除游标指向的元组。
 
        嵌入式SQL
        SQL提供了将SQL语句嵌入到某种高级语言中的使用方式,识别嵌入在高级语言中的SQL语句通常采用预编译的方法。该方法的关键问题是必须区分主语言中嵌入的SQL语句,以及主语言和SQL间的通信问题。采用的方法是由DBMS的预处理程序对源程序进行扫描,识别出SQL语句,把它们转换为主语言调用语句,以使主语言编译程序能识别它,最后由主语言的编译程序将整个源程序编译成目标码。
        嵌入式SQL与主语言之间的通信采用以下3种方式。
        (1)SQL通信区。向主语言传递SQL语句执行的状态信息,使主语言能够根据此信息控制程序流程。
        (2)主变量。也称为共享变量。主语言向SQL语句提供参数主要通过主变量,主变量由主语言的程序定义,并用SQL的DECLARE语句说明。
        (3)游标SQL。语言是面向集合的,一条SQL语句可产生或处理多条记录。而主语言是面向记录的,一组主变量一次只能放一条记录,所以引入游标,通过移动游标指针来决定获取哪一条记录。



更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2025 All Rights Reserved
软考在线版权所有