.、嵌入式SQL概述二、嵌入式SQL的一般形式三、嵌入式SQL语句和主语言之间的通信四、不用游标的SQL语句五、使用游标的SQL语句3一、嵌入式SQL概述使用嵌入式SQL的原因SQL语言不便于进行事务处理中的流程控制;普通编程语言在涉及数据库的操作时,不能高效率地进行数据的存取。将SQL语句嵌入到普通编程语言中使用,很好地结合了编程语言的过程性和SQL语言的数据操纵能力。嵌入式SQL语言:嵌入到普通编程语言中的SQL语言宿主语言:嵌入SQL语句的普通编程语言4一、嵌入式SQL概述DBMS处理嵌入式SQL语言有两种方法:预编译方法—使用较多的方法扩充编译程序法使用嵌入式SQL,必须解决下列三个问题让预编译器识别程序代码中的SQL语句DBMS和宿主语言程序能够进行数据交换协调好SQL语句和宿主语句对记录的处理方式5二、嵌入式SQL的一般形式开始标志:EXECSQL结束标志:视不同的宿主语言而不同PL/1和C语言中以“;”作为结束标志COBOL语言以END-EXEC作为结束标志嵌入式SQL的一般形式:开始标志+SQL语句+结束标志例:交互SQL:DROPTABLEemployee,嵌入到C语言中的写法是:EXECSQLDROPTABLEemployee;6三、嵌入式SQL语句和主语言之间的通信数据库和源程序工作单元之间通信主要包括:向主语言传递SQL语句的执行状态信息,使主语言能够据此控制程序流程;主语言向SQL语言提供参数;将SQL语句查询数据库的结果交主语言进一步处理。采用的通信方式SQL—>主语言(SQL执行状态):SQLCA主语言—>SQL(输入数据):主变量SQL—>主语言(输出数据):主变量+游标7三、嵌入式SQL语句和主语言之间的通信SQL通信区(SQLCA:municationArea)将系统当前的工作状态和运行环境数据反馈给主程序在应用程序中的定义: EXECSQLINCLUDESQLCA;,属于整数类型,供DBMS向应用程序报告SQL语句的执行情况。每执行一条SQL语句,返回一个SQLCODE代码。8三、嵌入式SQL语句和=0:SQL语句执行成功,无异常出现;SQLCODE为负整数:SQL语句执行失败,具体负值表示错误的类型;SQLCODE为正整数,表示SQL语句已执行,但出现了意外的情况。如当SQLCODE=100时表示语句已执行,但无数据可取,如DB中无满足条件的记录。9三、嵌入式SQL语句和主语言之间的通信主变量(hostvariable):是在嵌入式SQL中使用的主语言的程序变量,用来在输入和输出数据主变量声明:EXECSQLBEGINDECLARESECTION; 〈主变量说明段〉 EXECSQLENDDECLARESECTIONC语言中主变量声明举例: EXECSQLBEGINDECLARESECTION; ints_no;chars_name[30]; ints_age; EXECSQLENDDECLARESECTION10三、嵌入式SQL语句和主语言之间的通信主变量使用SQL语句引用主变量时,变量名前加“:”在宿主语言中引用主变量时就无需再加“:”s_no=101;EXECSQLselectSNAME,SAGE into:s_name,:s_age fromSTUDENT whereSNO=:s_no;
数据库应用开发嵌入式 来自淘豆网m.daumloan.com转载请标明出处.