欢迎来到天天文库
浏览记录
ID:59416071
大小:600.00 KB
页数:41页
时间:2020-09-19
《Oracle数据库学习-数据库8_DataBaseppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第八章数据库编程8.1嵌入式SQL8.2存储过程8.3ODBC编程8.4JDBC8.5ADO简介8.1嵌入式SQLSQL语言提供了两种不同的使用方式:交互式嵌入式将SQL语句嵌入到其它宿主语言编写的程序中,作为宿主语言的子语言,使宿主语言具备访问数据库的能力。宿主语言:COBOL,C,Pascal,Fortran,VC++,VB,DEPHI,CB等能嵌入SQL语句的高级语言。宿主语言本身不能直接识别SQL语句。为什么要引入嵌入式SQLSQL语言是非过程性语言事务处理应用需要高级语言这两种方式细节上有差别,在程序设计的环境下,SQL语句要做某些必要的扩充。把SQL嵌入到其他高
2、级语言中,必须解决的三个问题:语句识别——如何区分SQL语句和主语言语句。数据交换——由主语言提出的操作或数据,如何让数据库管理系统执行,由数据库查询出的数据如何交由主语言处理。协调主语言的单记录操作和数据库的集合操作。8.1.1嵌入式SQL的处理过程对宿主型数据库语言SQL(ESQL),DBMS采用预编译方法处理:1.由DBMS的预处理程序对源程序进行扫描,识别出SQL语句2.把它们转换成主语言调用语句,以使主语言编译程序能识别它3.最后由主语言的编译程序将整个源程序编译成目标码。主语言程序含ESQL语句ESQL语句转换为函数调用目标语言程序RDBMS的预处理程序主语言编
3、译程序ESQL基本处理过程8.1.1嵌入式SQL的处理过程为了能够区分SQL语句与主语言语句,所有的SQL语句必需要有前缀EXECSQL,以(;)结束,嵌入式SQL语句的一般形式EXECSQL;例:EXECSQLDROPTABLEStudent;8.1.2嵌入式SQL语句与主语言之间的通信将SQL嵌入到高级语言中混合编程,程序中会含有两种不同计算模型的语句。SQL语句描述性的面向集合的语句负责操纵数据库高级语言语句过程性的面向记录的语句负责控制程序流程嵌入式SQL语句与主语言之间的通信主要是指:描述性面向集合与过程性面向纪录(元组)语句之间的通信。工作单元之间
4、的通信方式SQL通信区向主语言传递SQL语句的执行状态信息,主语言能够据此控制程序流程。主变量1)主语言向SQL语句提供参数。2)将SQL语句查询数据库的结果交主语言进一步处理。游标解决集合性操作语言与过程性操作语言的不匹配。一、SQL通信区SQLCA:SQLCommunicationArea是一个数据结构——存放状态信息供程序读取。SQLCA的用途SQL语句执行后,DBMS反馈给应用程序信息描述系统当前工作状态描述运行环境这些信息将送到SQL通信区SQLCA中,应用程序从SQLCA中取出这些状态信息,据此决定接下来执行的语句定义SQLCA用EXECSQLINCLUDESQ
5、LCA加以定义使用SQLCASQLCA中有一个存放每次执行SQL语句后返回代码的变量SQLCODE;如果SQLCODE等于预定义的常量SUCCESS,则表示SQL语句成功,否则在SQLCODE存放错误代码;应用程序每执行完一条SQL语句之后都应该测试一下SQLCODE的值,以了解该SQL语句执行情况并做相应处理。二、主变量什么是主变量嵌入式SQL语句中可以使用主语言的程序变量来输入或输出数据,在SQL语句中使用的主语言程序变量简称为主变量(HostVariable)主变量的类型输入主变量---由应用程序对其赋值,SQL语句引用。输出主变量--由SQL语句赋值或设置状态信息,
6、返回给应用程序。一个主变量有可能既是输入主变量又是输出主变量定义SQLCA用EXECSQLINCLUDESQLCA加以定义使用SQLCASQLCA中有一个存放每次执行SQL语句后返回代码的变量SQLCODE;如果SQLCODE等于预定义的常量SUCCESS,则表示SQL语句成功,否则在SQLCODE存放错误代码;应用程序每执行完一条SQL语句之后都应该测试一下SQLCODE的值,以了解该SQL语句执行情况并做相应处理。指示变量一个主变量可以附带一个指示变量(IndicatorVariable)什么是指示变量整型变量用来“指示”所指主变量的值或条件。指示变量的用途指示变量可以
7、输入主变量是否为空值指示变量可以检测输出主变量是否为空值,值是否被截断。在SQL语句中使用主变量和指示变量的方法1)说明主变量和指示变量BEGINDECLARESECTION..................(说明主变量和指示变量)ENDDECLARESECTION2)使用主变量说明之后的主变量可以在SQL语句中任何一个能够使用表达式的地方出现。为了与数据库对象名(表名、视图名、列名等)区别,SQL语句中的主变量名前要加冒号(:)作为标志3)使用指示变量指示变量前也必须加冒号标志必须紧跟在所指主变量之后在SQL语
此文档下载收益归作者所有