没有合适的资源?快使用搜索试试~ 我知道了~
首页ESQL/C资料(完全版)
资源详情
资源评论
资源推荐

ESQL/C 资料(完全版) 一
目录
ESQL/C 资料(完全版) 一.....................................................................1
一第一节 什么是嵌入 语言?
一嵌入 程序的组成元素
一什么是静态 和动态
一什么是 ?
一什么是
一第二节 嵌入式 语言
一一个嵌入 语言的简单例子
一嵌入 的处理过程
一嵌入 语句总览
一动态 语句
一两个例子程序
一第三节 嵌入 语言
一一个简单示例
一嵌入 语句
一 的嵌入 程序处理过程
一 的动态 嵌入语句
一第四节 数据库的嵌入 语言
一基本的 语句
一嵌入
一动态 语句
一第五节 !" 的嵌入 语言
一一个简单的入门例子
一宿主变量
一嵌入 的处理过程
一动态 语言
一第六节 #$%&%'( 嵌入式 语言
一一个嵌入 语言的简单例子
一嵌入 的处理过程
一嵌入 语句
一动态 语句
一
二、 ESQL 编程使用说明................................................................144
二第一章 介绍

二 中的基本概念
二 程序的组成和运行
二第二章 程序的基本结构
二程序首部
二程序体
二第三章 查 询
二)语句
二游标的使用
二定位修改和删除语句
二第四章 提交回滚事务
二逻辑工作单元
二)语句
二* 语 句
二 )语句
二第五章 错误检测和恢复
二+ 的结构
二第六章 使用说明书
二启动 %,-&:
二退出 %,-&.
二交互式 (/(-$(#)访问
二嵌入式 (/,00)编程方式
二补充说明
一.1 第一节 什么是嵌入 SQL 语言?
是一种双重式语言,它既是一种用于查询和更新的交互式数据库语言,又是一种
应用程序进行数据库访问时所采取的编程式数据库语言。 语言在这两种方式中的大部
分语法是相同的。在编写访问数据库的程序时,必须从普通的编程语言开始(如 语言),
再把 加入到程序中。所以,嵌入式 语言就是将 语句直接嵌入到程序的源代
码中,与其他程序设计语言语句混合。专用的 预编译程序将嵌入的 语句转换为
能被程序设计语言(如 语言)的编译器识别的函数调用。然后, 编译器编译源代码为
可执行程序。
各个数据库厂商都采用嵌入 语言,并且都符合 的标准。所以,如果采
用合适的嵌入 语言,那么可以使得你的程序能够在各个数据库平台上执行(即:源程
序不用做修改,只需要用相应数据库产品的预编译器编译即可)。当然,每个数据库厂商
又扩展了 的标准,提供了一些附加的功能。这样,也使得每个数据库产品在嵌
入 方面有一些区别。本章的目标是,对所有的数据库产品的嵌入 做一个简单、
实用的介绍。

当然,嵌入 语句完成的功能也可以通过应用程序接口()实现。通过 的
调用,可以将 语句传递到 ,并用 调用返回查询结果。这个方法不需要专用
的预编译程序。
一.1.1 嵌入 SQL 程序的组成元素
我们以 的 嵌入 为例,来看看嵌入 语句的组成元素。
例 、连接到 数据库,查询 ) 为 12 的 !) 信息。
3#/$4506&(0#%78
3#/$4506&(04#,78
3#/$4506&(#/978
3#/$450:5(#47:
3#/$4506&;4$-78
" +<=>
?-#/=>
@
"A ) <=>
$7-B&(/-?CD<
$7-5�CD<
$7-E-&&F0CD<
" ) <
" ))&-?E4<=>
")!) ).B&(/-?=>
!?E4%G
H2) IJ12 J<=>
E#/('=:!#&(/-?IK&L/:MB&(/-?><
" ))<=>
(5/<
N
上面是一个简单的静态嵌入 语句的应用程序。它包括了嵌入 的主要部分:
()中的 #/$450 语句定义并描述了 的结构。 用于应
用程序和数据库之间的通讯,其中的 返回 语句执行后的结果状态。
()在 A ) 和 ) 之间定义了
宿主变量。宿主变量可被 语句引用,也可以被 语言语句引用。它用于将程序中
的数据通过 语句传给数据库管理器,或从数据库管理器接收查询的结果。在
语句中,主变量前均有“:”标志以示区别。
()在每次访问数据库之前必须做 ) 操作,以连接到某一个数据库上。
这时,应该保证数据库实例已经启动。

()是一条选择语句。它将表 ?E4%G 中的 ) 为“12 O的行
数据的 !) 查出,并将它放在 B&(/-? 变量中。该语句返回一个结果。可
以通过游标返回多个结果。当然,也可以包含 5E0-(、#/&( 和 04( 语句。
()最后断开数据库的连接。
从上例看出,每条嵌入式 语句都用 " 开始,表明它是一条 语句。
这也是告诉预编译器在 " 和“;”之间是嵌入 语句。如果一条嵌入式 语
句占用多行,在 程序中可以用续行符“LO。
一.1.2 什么是静态 SQL 和动态 SQL?
嵌入 语言,分为静态 语言和动态语言两类。静态 语言,就是在编译时
已经确定了引用的表和列。宿主变量不改变表和列信息。可以使用主变量改变查询参数值,
但是不能用主变量代替表名或列名。
动态 语言就是:不在编译时确定 的表和列,而是让程序在运行时提供,并
将 语句文本传给 执行。静态 语句在编译时已经生成执行计划。而动态
语句,只有在执行时才产生执行计划。动态 语句首先执行 语句要求
分析、确认和优化语句,并为其生成执行计划。 还设置 以表明语
句中发现的错误。当程序执行完“O语句后,就可以用 "+) 语句执行执行计
划,并设置 ,以表明完成状态。
一.1.3 什么是 SQLCA?
应用程序执行时,每执行一条 语句,就返回一个状态符和一些附加信息。这些信
息反映了 语句的执行情况,它有助于用户分析应用程序的错误所在。这些信息都存放
在 &;4$-7 的 &;4$- 结构中。如果一个源文件中包含 语句,则必须要在源程序中定义
一个 结构,而且名为 。最简单的定义方法是在源文件中加入一些语句:
" +&;4$-7。每个数据库产品都提供了 结构。
一.1.4 什么是 SQLDA?
我们知道,动态 语句在编译时可能不知道有多少列信息。在嵌入 语句中,
这些不确定的数据是通过 完成的。 的结构非常灵活,在该结构的固定部分,
指明了多少列等信息,在该结构的后面有一个可变长的结构,说明每列的信息。在从数据
库获得数据时,就可以采用 来获得每行的数据。各个数据库产品的 结构
都不完全相同。

一.2 第二节 SYBASE SQL Server 嵌入式 SQL 语言
一.2.1 一个嵌入 SQL 语言的简单例子
我们首先来看一个简单的嵌入式 语言的程序( 语言):用 &-(口令为
E-&&F%0)连接数据库服务器,并将所有书的价格增加 K。这个例子程序如下:
例 、
P建立通讯区域P
Q$&;4#/$450&;4$-<
?-#/=>
@
P声明宿主变量P
"A ) <
$7-5&CDME-&&F0CD<
" ) <
P错误处理P
"H2 RSE=><
P连接到 R 服务器P
E#/('=:L/E4-&/(G%55�:><
9(&=5&><
E#/('=:L/E-&&F%0:><
9(&=E-&&F0><
Q$&;4$%//$(.5�/(#B0,G.E-&&F0<
Q$&;45&E5,&;
"5E0-((#(4&&(E#$IE#$P<
"$%??#(F%T<
P断开数据库服务器的连接P
Q$&;40#&$%//$(-44<
(5/=><
N
P错误处理程序P
SE=>
@
E#/('=:L/%%$$50.$%0K0L/K&:ML
&;4$-&;4$%0M&;4$-&;4?&;4?$><
N
从上面这个例子,我们看出嵌入 的基本特点是:
、每条嵌入式 语句都用 " 开始,表明它是一条 语句。这也
是告诉预编译器在 " 和“;”之间是嵌入 语句。
剩余63页未读,继续阅读




安全验证
文档复制为VIP权益,开通VIP直接复制

评论2