[计算机软件及应用]数据库编程.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 ◆存储过程 ◆ ODBC编程 8.1 嵌入式 SQL 引入嵌入式SQL的原因 SQL语言是非过程性语言 事务处理应用需要高级语言 这两种方式细节上有差别,在程序设计的环境下,SQL语句要做某些必要的扩充 嵌入式SQL 当一个程序即要访问数据库,又要处理数据时,把SQL语言嵌入程序设计语言即宿主语言中,将SQL语言访问数据库的功能和宿主语言的数据处理功能相结合,是目前解决该问题的最有效途径。这样使用的SQL称为嵌入式SQL(Embedded SQL, ESQL) 8.1.1 嵌入式SQL的处理过程 嵌入式SQL的基本处理过程 为了区分SQL语句与主语言语句,需要: 前缀:EXEC SQL 结束标志:随主语言的不同而不同 一般形式 以C为主语言的嵌入式SQL语句的一般形式 EXEC SQL SQL语句 ; 例:EXEC SQL DROP TABLE Student ; 宿主语言的编译程序不能识别SQL语句,所以首要问题要解决如何区分宿主语言的语句和SQL语句。 1)嵌入识别问题 DBMS将SQL语句的查询结果或执行状态必须交给宿主语言/应用程序处理(通过SQLCA);运行时,宿主语言的数据通过变量(称为主变量)也要能够交给SQL使用。 2)宿主语言与SQL语言的数据通信问题 宿主语言一般一次处理一条记录;SQL语言常常处理的是记录(元组)的集合,其查询结果通常是含多个记录的一张表。 3)宿主语言的单记录与SQL的多记录的问题 说明:SQL作为子语言嵌入在宿主语言中使用必须要解决以下三方面问题: 8.1.2 嵌入式SQL语句与主语言之间的通信 将SQL嵌入到高级语言中混合编程,程序中会含有两种不同计算模型的语句 SQL语句: 描述性的面向集合的语句-负责操纵数据库 高级语言语句: 过程性的面向记录的语句-负责控制程序流程 工作单元之间的通信方式 (1) SQL通信区 ♦ 向主语言传递SQL语句的执行状态信息 ♦ 主语言能够据此控制程序流程 (2) 主变量 ♦ 主语言向SQL语句提供参数 ♦ 将SQL语句查询数据库的结果交主语言进一步处理 (3) 游标 ♦ 解决集合性操作语言与过程性操作语言的不匹配 一、SQL通信区(SQL Communication Area, SQLCA) SQL被执行时,DBMS将产生的各类系统信息(如执行状态信息)写入系统通信区,应用程序在调用SQL后,可通过读取数据通信区中信息来确定语句执行情况。 使用SQLCA: SQLCA中有一个存放每次执行SQL语句后返回代码的变量SQLCODE 如果SQLCODE等于预定义的常量SUCCESS,则表示SQL语句成功,否则表示出错 应用程序每执行完一条SQL 语句之后都应该测试一下SQLCODE的值,以了解该SQL语句执行情况并做相应处理 定义SQLCA: 用EXEC SQL INCLUDE SQLCA加以定义 二、主变量( Host Variable) ♦ 主变量的分类与作用 输入主变量:由应用程序赋值,SQL引用。 输出主变量:SQL对其赋值或设置状态信息,返回给应 用程序。 SQL语句使用宿主语言的程序变量来输入/输出数据,这样的变量简称为主变量(Host Variable) ♦ 指示变量(Indicator Variable) 1)什么是指示变量: 整型变量 用来“指示”所指主变量的值或条件 2)指示变量的用途: 输入主变量可以利用指示变量赋空值 输出主变量可以利用指示变量检测出是否空值,值是否被截断 ♦ 在SQL语句中说明主变量和指示变量 BEGIN DECLARE SECTION ......... ......... (说明主变量和指示变量) ......... END DECLARE SECTION ♦在SQL语句中使用主变量 SQL语句中的主变量名前要加冒号(:)作为标志 ♦在SQL语句使用指示变量 (1)指示变量前也必须加冒号(:)标志 (2)必须紧跟在所指主变量之后 例如: :Hgrade :Gradeid 三、 游标(Cursor) ♦ 游标的概念 游标是系统为用户开设的一个数据缓冲区,存放SQL的执行结果。 ♦ 为什么要使用游标 当查询结果超过一个元组时,不能一次性将结果值赋给宿主语言的变量,因为主变量仅能保存一个数据,而不是一组数据。 (1)定义游标 EXEC SQL DECLARE SX CURSOR FOR SELECT Sno, Sname, Ssex, Sa

文档评论(0)

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

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

1亿VIP精品文档

相关文档