首页 > 知识点讲解
       SQL与宿主语言接口
知识路径: > 数据库技术 > 数据库标准语言—SQL > 嵌入式SQL > 
被考次数:3次     被考频率:中频率     总体答错率:49%     知识难度系数:     
考试要求:掌握      相关知识点:3个      
        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)关闭游标,格式如下:
                      
                      该语句关闭游标,使它不再和查询结果相联系。关闭了的游标,可以再次打开,与新的查询结果相联系。在游标处于活动状态时,可以修改和删除游标指向的元组。
 
本知识点历年真题:
隶属试卷 题号/题型 题干 难度系数/错误率
   2010年上半年
   数据库系统工程..
   上午试卷 综合知识
第51题
选择题
嵌入式SQL中通过(49)实现主语言与SQL语句间进行参数传递;SQL语句的执行状态通过(50)传递给主语言来进行流程控制;对于返回结果为多条记录的SQL语句,通过(51)来由主语言逐条处理。

32%
   2010年上半年
   数据库系统工程..
   上午试卷 综合知识
第50题
选择题
嵌入式SQL中通过(49)实现主语言与SQL语句间进行参数传递;SQL语句的执行状态通过(50)传递给主语言来进行流程控制;对于返回结果为多条记录的SQL语句,通过(51)来由主语言逐条处理。

61%
>>  更多  本知识点历年真题
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


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