【数据库系统概论】嵌入式SQL.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
西华师范大学计算机学院 第三章 关系数据库标准语言SQL 3.1 SQL概述 3.2 数据定义 3.3 查询 3.4 数据更新 3.5 视图 3.6 数据控制 3.7 嵌入式SQL 3.8 小结 3.7 嵌 入 式 SQL SQL语言提供了两种不同的使用方式: 交互式: SQL语句作为独立的数据语言,以交互的方式使用 嵌入式:用某种传统的编程语言(例如:C、PASCAL、COBOL等)编写程序,但程序中的某些函数或某些语句是SQL语句。这种方式下使用的SQL语言称为嵌入式SQL(EmbeddedSQL),其中传统的编程语言称为宿主语言(或主语言) 为什么要引入嵌入式SQL SQL语言是非过程性语言,事务处理应用需要程序根据不同的条件执行不同的任务,如果单单使用SQL语言,很难实现这类应用。 这两种方式细节上有差别,在程序设计的环境下,SQL语句要做某些必要的扩充 DBMS有两种方法处理嵌入式SQL语言:预编译和扩充编译程序法。 预编译是指由DBMS的预编译器对源程序进行扫描,识别出其中的SQL语句,把它们转换为宿主语言调用语句,使宿主语言编译器能够识别,最后由编译器将整个源程序编译为目标码。 扩充编译程序法是指修改和扩充宿主语言的编译程序,使其能够直接处理SQL语句。目前使用较多的是预编译方法,其处理过程如下图所示。 其中关键的一步,是将嵌有SQL的宿主语言源代码通过预编译器(Precomplier)变成纯宿主语言源代码。RDBMS除了提供SQL语言接口外,一般都提供一批用宿主语言编写的SQL函数,供应用程序调用DBMS的各种功能。如建立与DBMS的连接及连接的环境、传送SQL语句、执行SQL语句、返回执行结果和状态等等。这些函数组成SQL函数库。预编译器将SQL语句编译成宿主语言对SQL函数的调用,从而把嵌有SQL的宿主语言源代码变成纯宿主语言源代码,在编译连接后执行。 使用嵌入式SQL必须解决以下几个问题: (1)预编译器不能识别和接受SQL语句,因此,嵌入式程序中,应有区分SQL语句与宿主语言语句的标记。 (2)DBMS和宿主语言程序(程序工作单元)如何进行信息传递。 (3)一条SQL语句原则上可产生或处理一组记录,而宿主语言一次只能处理一个记录,必须协调这两种处理方式。 3.7.1嵌入式SQL的一般形式 为了区分SQL语句与主语言语句,需要: 前缀:EXEC SQL 结束标志:随主语言的不同而不同 以C为主语言的嵌入式SQL语句的一般形式 EXEC SQL SQL语句; 例:EXEC SQL DROP TABLE Student; 以COBOL作为主语言的嵌入式SQL语句的一般形式 EXEC SQL SQL语句 END-EXEC 例: EXEC SQL DROP TABLE Student END-EXEC 嵌入SQL语句 说明性语句 嵌入SQL语句 数据定义 可执行语句 数据控制 数据操纵 允许出现可执行的高级语言语句的地方,都可以写可执行SQL语句 允许出现说明语句的地方,都可以写说明性SQL语句 3.7.2 嵌入式SQL语句与主语言之间的通信 将SQL嵌入到高级语言中混合编程,程序中会含 有两种不同计算模型的语句 SQL语句 描述性的面向集合的语句 负责操纵数据库 高级语言语句 过程性的面向记录的语句 负责控制程序流程 工作单元之间的通信方式 1. SQL通信区 向主语言传递SQL语句的执行状态信息,主语言能够据此控制程序流程 2. 主变量 1)主语言向SQL语句提供参数 2)将SQL语句查询数据库的结果交主语言进一步处理 3. 游标 解决集合性操作语言与过程性操作语言的不匹配 1. SQL通信区 SQLCA: SQL Communication Area SQLCA是一个数据结构,它是系统定义的主变量(全局变量) SQLCA的用途 SQL语句执行后,DBMS反馈给应用程序信息 描述系统当前工作状态 描述运行环境 这些信息将送到SQL通信区SQLCA中 应用程序从SQLCA中取出这些状态信息,据此决定接下来执行的语句 SQLCA的内容 与所执行的SQL语句有关 与该SQL语句的执行情况有关 例:在执行删除语句DELETE后,不同的执行情况,SQLCA中有不同的信息: 违反数据保护规则,操作拒绝 没有满足条件的行,一行也没有删除 成功删除,并有删除的行数 无条件删除警告信息 由于各种原因,执行出错 SQLCA的使用方法 定义SQLCA 用EXEC SQL INCLUDE SQLCA加以

文档评论(0)

精品资料 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档