第07章 数据库编程基础ppt课件.ppt

第07章 数据库编程基础ppt课件.ppt

ID:59195205

大小:352.00 KB

页数:56页

时间:2020-09-26

第07章  数据库编程基础ppt课件.ppt_第1页
第07章  数据库编程基础ppt课件.ppt_第2页
第07章  数据库编程基础ppt课件.ppt_第3页
第07章  数据库编程基础ppt课件.ppt_第4页
第07章  数据库编程基础ppt课件.ppt_第5页
资源描述:

《第07章 数据库编程基础ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第7章数据库编程基础游标与SQL的宿主使用存储过程触发器及其用途动态SQL7.1游标与SQL的宿主使用SQL宿主使用面临的问题嵌入识别与预编译数据通讯区与主变量游标7.1.1SQL宿主使用面临的问题嵌入识别问题:宿主语言的编译程序不能识别SQL语句,所以首要的问题就是要解决如何区分宿主语言的语句和SQL语句;宿主语言与SQL语言的数据交互问题:SQL语句的查询结果必须能够交给宿主语言处理,宿主语言的数据也要能够交给SQL语句使用;宿主语言的单记录与SQL的多记录的问题:宿主语言一般一次处理一条记录,而SQL常常处理的是记录(元组)的集合,这个矛盾必须解决。7.1.2嵌入

2、识别与预编译为了区分宿主语言和SQL语句,为SQL语句加一个特殊的前缀,在用宿主语言的编译系统编译源程序之前,首先由预编译系统将SQL语句转换为宿主语言的合法函数调用。常用前缀格式是:EXECSQL比如:EXECSQLINSERTINTO仓储.仓库VALUES('WH1','北京',500)嵌入了SQL的应用程序的执行过程7.1.3数据通讯区与主变量为了解决程序变量和数据库的交互,一般需要说明一个数据通讯区,即在程序的前部都要有如下语句:INCLUDESQLCA注:SQLCA是SQL与宿主语言的通讯区,它类似于结构变量,各个分量分别反映SQL语句的各种执行状态,如:sq

3、lca.sqlcode主(Host)变量负责SQL语句和宿主语言语句数据交换的是主变量,这种变量既可以用在SQL语句中,又可以用在宿主语言语句中。主变量的说明格式BEGINDECLARESECTION…主变量说明…ENDDECLARESECTION主变量说明的例子:EXECSQLBEGINDECLARESECTION;charwhnumb[5]charcity[12]intwh_areaEXECSQLENDDECLARESECTION;使用主变量的例子:UPDATE仓库SET面积=:wh_areaWHERE仓库号=:whnumb注:主变量用在宿主语言语句中时,和一般程序

4、变量的使用方法是一样的。7.1.4游标(Cursor)DECLARECURSOROPENFETCHCLOSEDEALLOCATE为了解决宿主语言一次只能处理一条记录,而SQL语言一次处理多条记录的矛盾,引入了游标的概念。相关的语句有:定义游标基本格式DECLARE<游标名>CURSORFOR游标可以看作是一个临时存储或临时文件,它的内容就是SELECT语句的查询结果。打开游标OPEN<游标名>从游标中读记录基本格式是FETCH<游标名>[INTO<主变量1>,<主变量2>…]这里的游标必须是已经说明并打开了的,INTO后的主变量要与在DECLARE

5、CURSOR中SELECT的字段相对应。关闭游标CLOSE<游标名>游标被关闭后如果需要还可以用OPEN语句打开。释放游标DEALLOCATE<游标名>DEALLOCATE命令释放和删除与游标有关的所有数据结构和定义。游标概念归纳与程序设计语言中的文件相对照:DECLARECURSOR相当于说明了一个文件OPEN相当于打开文件FETCH相当于读一条记录CLOSE相当于关闭文件DEALLOCATE语句相当于删除文件。使用游标的一个C语言程序段…EXECSQLBEGINDECLARESECTIONcharwhnumb[5]charcity[12]intwh_areaEXEC

6、SQLENDDECLARESECTION…EXECSQLDECLAREc1CURSORFORSELECT仓库号,城市,面积FROM仓库WHERE面积=:wh_areaEXECSQLOPENc1while(SQLCA.sqlcode<>100){EXECSQLFETCHc1INTO:whnumb,:city,:wh_area…}EXECSQLCLOSEc1…在T-SQL中使用游标使用全局变量@@FETCH_STATUS来判断FETCH语句对游标的操作状态。取值如下:0:FETCH语句成功;-1:FETCH语句失败或行不在结果集中;-2:提取的行不存在。循环语句WHILE@

7、@FETCH_STATUS=0在T-SQL中用游标列出所有仓库记录DECLARE@whnoCHAR(6),@cityCHAR(10),@areaINTDECLAREwh_cursorCURSORFORSELECT仓库号,城市,面积FROM仓储.仓库OPENwh_cursorPRINT'--------仓库列表--------'PRINT‘仓库号所在城市仓库面积’FETCHFROMwh_cursorINTO@whno,@city,@areaWHILE@@FETCH_STATUS=0BEGINPRINT@whno+''+@city+STR(@

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。