esqlc资料(完全版)

esqlc资料(完全版)

ID:16410068

大小:727.00 KB

页数:125页

时间:2018-08-09

esqlc资料(完全版)_第1页
esqlc资料(完全版)_第2页
esqlc资料(完全版)_第3页
esqlc资料(完全版)_第4页
esqlc资料(完全版)_第5页
资源描述:

《esqlc资料(完全版)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、ESQL/C资料(完全版)第六章嵌入式SQL(E-SQL)简介第一节什么是嵌入SQL语言?SQL是一种双重式语言,它既是一种用于查询和更新的交互式数据库语言,又是一种应用程序进行数据库访问时所采取的编程式数据库语言。SQL语言在这两种方式中的大部分语法是相同的。在编写访问数据库的程序时,必须从普通的编程语言开始(如C语言),再把SQL加入到程序中。所以,嵌入式SQL语言就是将SQL语句直接嵌入到程序的源代码中,与其他程序设计语言语句混合。专用的SQL预编译程序将嵌入的SQL语句转换为能被程序设计语言(如C语言)的编译器识别的函数调用。然后,C编译器编译源代码为可执行程

2、序。各个数据库厂商都采用嵌入SQL语言,并且都符合ANSI/ISO的标准。所以,如果采用合适的嵌入SQL语言,那么可以使得你的程序能够在各个数据库平台上执行(即:源程序不用做修改,只需要用相应数据库产品的预编译器编译即可)。当然,每个数据库厂商又扩展了ANSI/ISO的标准,提供了一些附加的功能。这样,也使得每个数据库产品在嵌入SQL方面有一些区别。本章的目标是,对所有的数据库产品的嵌入SQL做一个简单、实用的介绍。当然,嵌入SQL语句完成的功能也可以通过应用程序接口(API)实现。通过API的调用,可以将SQL语句传递到DBMS,并用API调用返回查询结果。这个方法

3、不需要专用的预编译程序。1.1嵌入SQL程序的组成元素我们以IBM的DB2嵌入SQL为例,来看看嵌入SQL语句的组成元素。例1、连接到SAMPLE数据库,查询LASTNAME为JOHNSON的FIRSTNAME信息。#include#include#include#include"util.h"#includeEXECSQLINCLUDESQLCA;(1)main(){EXECSQLBEGINDECLARESECTION;(2)charfirstname[13];charuserid[9];c

4、harpasswd[19];EXECSQLENDDECLARESECTION;EXECSQLCONNECTTOsample;(3)EXECSQLSELECTFIRSTNMEINTO:firstname(4)FROMemployeeWHERELASTNAME='JOHNSON';(4)printf("Firstname=%s",firstname);EXECSQLCONNECTRESET;(5)return0;}上面是一个简单的静态嵌入SQL语句的应用程序。它包括了嵌入SQL的主要部分:(1)中的includeSQLCA语句定义并描述了SQLCA的结构。SQLCA用

5、于应用程序和数据库之间的通讯,其中的SQLCODE返回SQL语句执行后的结果状态。(2)在BEGINDECLARESECTION和ENDDECLARESECTION之间定义了宿主变量。宿主变量可被SQL语句引用,也可以被C语言语句引用。它用于将程序中的数据通过SQL语句传给数据库管理器,或从数据库管理器接收查询的结果。在SQL语句中,主变量前均有“:”标志以示区别。(3)在每次访问数据库之前必须做CONNECT操作,以连接到某一个数据库上。这时,应该保证数据库实例已经启动。(4)是一条选择语句。它将表employee中的LASTNAME为“JOHNSON”的行数据的F

6、IRSTNAME查出,并将它放在firstname变量中。该语句返回一个结果。可以通过游标返回多个结果。当然,也可以包含update、insert和delete语句。(5)最后断开数据库的连接。从上例看出,每条嵌入式SQL语句都用EXECSQL开始,表明它是一条SQL语句。这也是告诉预编译器在EXECSQL和“;”之间是嵌入SQL语句。如果一条嵌入式SQL语句占用多行,在C程序中可以用续行符“”。1.2什么是静态SQL和动态SQL?嵌入SQL语言,分为静态SQL语言和动态语言两类。静态SQL语言,就是在编译时已经确定了引用的表和列。宿主变量不改变表和列信息。可以使用

7、主变量改变查询参数值,但是不能用主变量代替表名或列名。动态SQL语言就是:不在编译时确定SQL的表和列,而是让程序在运行时提供,并将SQL语句文本传给DBMS执行。静态SQL语句在编译时已经生成执行计划。而动态SQL语句,只有在执行时才产生执行计划。动态SQL语句首先执行PREPARE语句要求DBMS分析、确认和优化语句,并为其生成执行计划。DBMS还设置SQLCODE以表明语句中发现的错误。当程序执行完“PREPARE”语句后,就可以用EXECUTE语句执行执行计划,并设置SQLCODE,以表明完成状态。1.3什么是SQLCA?应用程序执行时,每执

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

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

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