数据库系统概论-数据库编程.pptVIP

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库系统概论-数据库编程

An Introduction to Database System 8.1嵌入式SQL SQL语句除了象前面介绍的可以交互的方式使用的外,更常用的方式是用某种传统的编程语言(例如:C、PB、COBOL等)编写程序,但程序中的某些函数或某些语句是SQL语句。这种方式下使用的SQL语言称为嵌入式SQL(EmbeddedSQL),其中传统的编程语言称为宿主语言(或主语言)。 8.1.1嵌入式SQL的一般形式 对嵌入到高级语言中的SQL语句,必需能够与宿主语言语句区分开来,例如Power Builder中采用的区分方式是在SQL语句后加上分号“;”。 而大多数的宿主语言在SQL前加上EXEC SQL标记,而结束标记各有不同。 嵌入式SQL的处理过程 8.1.2 嵌入式SQL与主语言之间的通信 SQL为面向集合的语句,而主语言为面向过程的语句,必需解决好二者的通信问题。 一、SQL通信区 在主变量中,有一个系统定义的主变量,叫SQLCA(SQL Communication Area:SQL通信区)。SQLCA是一全局变量,供应用程序和DBMS通信之用。SQLCA变量不需加以说明,在Power Builder中可以直接使用。 例如SQLCA对象的SQLCODE的值可以返回SQL语句是否执行成功,而SQLErrText可以返回出错的原因。 二、主变量 在DBMS和宿主语言程序之间的数据传递,是通过宿主语言程序变量,简称主变量来实现的。 当SQL语句引用主变量时,变量前应加冒号“:”,以区别于数据库对象名(如:列名、表名、视图名等),因此主变量可与数据库变量同名。在宿主语言中引用主变量时,不须加冒号。通过主变量,宿主语言可向SQL语句提供参数,如指定向数据库中插入(或修改)的数据; 另外,SQL语句可对主变量赋值或设置状态信息,返回给应用程序,使应用程序得到SQL语句的结果和状态。 在嵌入式程序中,所有的主变量,除系统定义的外,都必须加以说明,说明放在两个嵌入式SQL语句之间: EXEC SQL BEGIN DECLARE SECTION; … EXEC SQL END DECLARE SECTION; 三、游标 SQL语言和宿主语言的不同数据处理方式,是通过游标(Cursor)来协调的。游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。每个游标都有一个名字。用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,由宿主语言作进一步的处理。 游标的操作包括四个步骤: 1. 说明游标 格式: EXEC SQL DECLARE 游标名CURSOR FOR<SELECT语句>; 其中的SELECT语句,既可以是简单查询,也可以是连接查询或嵌套查询,它的结果集是一个新的关系。 说明游标仅仅是一条说明性语句,此时DBMS并不执行SELECT指定的查询操作。 2.打开游标 格式: EXEC SQL OPEN<游标名>; 打开游标,将执行相应的SELECT语句,把满足查询条件的所有记录,从表中取到缓冲区中。此时游标被激活,指针指向结果集中的第一条记录。 3.推进游标指针并取当前记录 使用FETCH语句,将缓冲区中的当前记录取出送至主变量供宿主语言进一步处理。同时,把游标指针向前推进一条记录。 格式: EXEC SQL FETCH<游标名>INTO<主变量名列表>; 主变量名列表由逗号分开,并与SELECT语句中的目标列表达式必须一一对应。 4.关闭游标 用CLOSE语句关闭游标,释放结果集占用的缓冲区及其他资源。但是,被关闭的游标可以用OPEN语句重新初始化,与新的查询结果相联系。 格式: EXEC SQL CLOSE<游标名>; …. EXEC SQL INCLUDE SQLCA; ……… ( 1) 定义SQLCA EXEC SQL BEGIN DECLARE SECTION; (2)

文档评论(0)

ranfand + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档