第6讲 嵌入式SQL

合集下载

嵌入式SQL

嵌入式SQL

嵌入式SQL嵌入式SQL语言把SQL语言嵌入到某种高级语言中使用,利用高级语言的过程性结构来弥补SQL语言实现复杂应用方面的不足。

这种方式下使用的SQL语言称为嵌入式SQL (Embedded SQL),而嵌入SQL的高级语言称为主语言或宿主语言。

1.1 嵌入式SQL的一般形式对宿主型数据库语言SQL,DBMS可采用两种方法处理,一种是预编译,另一种是修改和扩充主语言使之能处理SQL语句。

目前采用较多的是预编译的方法。

即由DBMS的预处理程序对源程序进行扫描,识别出SQL语句。

把它们转换成主语言调用语句,以使主语言编译程序能识别它,最后由主语言的编译程序将整个源程序编译成目标码。

在嵌入式SQL中,为了能够区分SQL语句与主语言语句,所有SQL语句都必须加前缀EXEC SQL.。

SQL语句的结束标志则随主语言的不同而不同。

例如在PL/1和C中以分号(;)结束;EXEC SQL <SQL 语句> ;在COBOL中以END-EXEC 结束;EXEC SQL < SQL 语句> END-EXEC例如一条交互形式的SQL语句:DROP TABLE Student ;嵌入到C程序中,应写成:EXEC SQL DROP TABLE Student ;嵌入SQL语句根据其作用的不同,可分为可执行语句和说明性语句两种。

可执行语句又分为数据定义,数据控制,数据操纵三种。

在宿主程序中,任何允许出现可执行的高级语言语句的地方,都可以写可执行SQL语句;任何允许出现说明型高级语言语句的地方,都可以写说明性SQL语句。

1.2 嵌入式SQL语句与主语言之间的通信将SQL嵌入到高级语言中混合编程,SQL语句负责操纵数据库,高级语言语句负责控制程序流程。

这时程序中会含有两种不同计算模型的语句,一种是描述性的面向集合的SQL语句,一种是过程性的高级语言语句,它们之间应该如何通信呢?数据库工作单元与源程序工作单元之间的通信主要包括:(1)向主语言传递SQL语句的执行状态信息,使主语言能够据此信息控制程序流程,主要用SQL通信区(SQL Communication Area ,简称SQLCA)实现;(2)主语言向SQL语句提供参数,主要用主变量实现;(3)将SQL语句查询数据库的结果交主语言进一步处理,主要用主变量和游标(Cursor)实现。

第6讲SQL语言基础及数据定义功能

第6讲SQL语言基础及数据定义功能

3、简洁易用
SQL功能极强,完成核心功能只需9个动词。
表 3.1 SQL 语言的动词 SQL 功 能 数 据 查 询 数 据 定 义 数 据 操 纵 数 据 控 制 动 词 SELECT CREATE, DROP, ALTER INSERT,UPDATE DELETE GRANT,REVOKE
4、面向集合的操作方式
PRIMARY KEY ( Sno, Cno ),
FOREIGN KEY ( Sno ) REFERENCES Student ( Sno ), FOREIGN KEY ( Cno ) REFERENCES Course ( Cno ) )
二、删除表
删除表的语句格式为: DROP TABLE <表名> 例:删除test表的语句为: DROP TABLE test { [, <表名> ] „ }
课程号 Cno 1 2 3 4 5 6 7
课程名 Cname 数据库 数学 信息系统 操作系统 数据结构 数据处理 PASCAL语言
先行课 Cpno 5 1 6 7 6
学分 Ccredit 4 2 4 3 4 2 4
4、SC表数据
学号 Sno 200215121 200215121 200215121 200215122 200215122
第6讲 SQL语言基础及数据定义功能

本讲内容
1 2 3 4
SQL概述
学生课程数据库简介
SQL语言功能概述
数据定义
6.1 SQL概述
SQL(Structured Query Language)
结构化查询语言,是关系数据库的标准语言 SQL是一个通用的、功能极强的关系数据库语言 现在所有的关系数据库管理系统都支持SQL,就连 个人计算机上使用的数据库也不例外。

嵌入式SQL(E-SQL)简介

嵌入式SQL(E-SQL)简介

第六章嵌入式SQL(E-SQL)简介3第一节什么是嵌入SQL语言?31.1 嵌入SQL程序的组成元素31.2 什么是静态SQL和动态SQL?41.3 什么是SQLCA?41.4 什么是SQLDA?5第二节SYBASE SQL SERVER嵌入式SQL语言5 2.1 一个嵌入SQL语言的简单例子52.2 嵌入SQL的处理过程62.3 嵌入SQL语句总览72.3.1 宿主变量72.3.2 连接数据库122.3.3 数据的查询和修改132.3.4 游标的使用132.3.5 SQLCA152.3.6 WHENEVER162.3.7 批处理182.3.8 事务182.4动态SQL语句182.4 .1 动态修改192.4.2 动态游标202.4.3 SQLDA232.4.4 DESCRIBE语句272.5 两个例子程序272.5.1 TELECOM程序272.5.2 ADHOC程序29第三节 IBM DB2嵌入SQL语言353.1 一个简单示例353.2 嵌入SQL语句373.2.1宿主变量373.2.2单行查询393.2.3多行查询393.2.4插入、删除和修改操作403.2.5 SQLCA433.2.6事务453.3 DB2的嵌入SQL程序处理过程463.4 DB2的动态SQL嵌入语句533.4.1 基本方法533.4.2 动态游标553.4.3 SQLDA55第四节 ORACLE数据库的嵌入SQL语言664.1 基本的SQL语句664.1.1宿主变量和指示符664.1.2 查询684.1.3 修改数据684.1.4 游标684.2 嵌入PL/SQL714.3 动态SQL语句724.3.1 ORACLE动态SQL语句的一些特点724.3.2 使用动态SQL的四种方法724.3.3 SQLDA75第五节INFORMIX的嵌入SQL/C语言895.1 一个简单的入门例子895.2 宿主变量915.3 嵌入SQL的处理过程965.4 动态SQL语言965.4.1 SQLDA97第六节MICROSOFT SQL SERVER7嵌入式SQL语言105 6.1 一个嵌入SQL语言的简单例子1056.2 嵌入SQL的处理过程1066.3 嵌入SQL语句1126.3.1 声明嵌入SQL语句中使用的C变量1126.3.2 连接数据库1156.3.3 数据的查询和修改1156.3.4 游标的使用1166.3.5 SQLCA1176.3.6 WHENEVER1186.4动态SQL语句1196.4 .1 动态修改1196.4.2 动态游标1206.4.3 SQLDA1226.4.4 DESCRIBE语句1306.5 API130第六章嵌入式SQL(E-SQL)简介第一节什么是嵌入SQL语言?SQL是一种双重式语言,它既是一种用于查询和更新的交互式数据库语言,又是一种应用程序进行数据库访问时所采取的编程式数据库语言。

嵌入式SQL简介

嵌入式SQL简介
第3章 结构化查询语言SQL
5
不用游标的DML语句举例 不用游标的DML语句举例
〖例3 34〗根据宿主变量givensno的值在基本 〖例3-34〗根据宿主变量givensno的值在基本 表S中查询该学生的姓名、性别、年龄和系 别。
EXEC SQL SELECT 姓名,年龄,性别,系别 姓名,年龄,性别, INTO :sname,:sage,::ssex,department sname, sage,::ssex, FROM S WHERE S.学号=: givensno; S.学号=: givensno;
第3章 结构化查询语言SQL
8
不用游标的DML语句举例 不用游标的DML语句举例
〖 例 3 - 37 〗 把一名新生的记录插入基本表S 中 , 37〗 把一名新生的记录插入基本表 S 该生的简况由一组宿主变量 givensno sname、 sname、 sage、ssex、 department给出。 sage、ssex、 department给出。
第3章 结构化查询语言SQL
6
不用游标的DML语句举例 不用游标的DML语句举例
〖 例 3 - 35 〗 把基本表S 中计算机科学与工程系 35〗 把基本表 S 学生的年龄加上宿主变量raise的值。 学生的年龄加上宿主变量raise的值。
EXEC SQL UPDATE S SET 年龄=年龄+:raise 年龄=年龄+: FROM S WHERE S.系别=‘计算机科学与工程系’; S.系别=‘计算机科学与工程系’;
第3章 结构化查询语言SQL
10
嵌入式SQL的处理过程 嵌入式SQL的处理过程
• 嵌入式SQL的两种实现途径: 嵌入式SQL的两种实现途径:

SQL的形式——嵌入式

SQL的形式——嵌入式
• char(n):固定长度的字符串 • varchar(n):可变长字符串 • int:整数 • smallint:小整数类型 • numeric(p,d):定点数,小数点左边p位,右边q位 • real:浮点数 • double precision:双精度浮点数 • date:日期(年、月、日) • time:时间(小时、分、秒) • interval:两个date或time类型数据之间的差
CREATE INDEX emp_order_ind ON order_emp (orderID, employeeI引的定义
– 3. 索引的删除 • 格式 drop index 索引名
13
3.2 SQL数据定义功能(续)
3.2.3 索引的定义 索引的有关说明
22
3.3.2 简单查询(续)
5. WHERE 子句
– 语法成分
• 比较运算符 、 、、、=、
• 逻辑运算符 AND,OR,NOT
• BETWEEN 条件 – 判断表达式的值是否在某范围内
23
3.3.2 简单查询(续)
5. WHERE 子句
Ex 1: 查询工资低于2000的老师的姓名、工资、系别
SQL的形式——嵌入式
Main(){ ... exec sql begin declare section; char co[10]; int id; exec sql end declare section; … exec sql select company_name
from customer where id = :id into co; … }
)
7
3.2 SQL数据定义功能(续)
3.2.2 基本表的定义
– 3. 修改基本表定义(ALTER)

嵌入式SQL及动态SQL

嵌入式SQL及动态SQL

2. 嵌入式SQL语句的基本形式
首先在主语言中使用SQL语言,必须将主语言的语句同SQL语句区分开来。区分 的方法是在SQL语句最后以分号“;”作为语句结束符。这样,以PowerBuilder 作为主语言的嵌入式SQL语句的一般形式为: SQL_statement; 例如:delete from wpkc_gysdjb;
嵌入式SQL 嵌入式
嵌入式SQL语句的具体使用方法:
2) 打开游标 语句语法: open cursor_name; 语法说明: (1)打开游标实际上是执行相应的select语句,并把指定表中的所有满足查询条件 的记录放到内存缓冲区中。 (2)执行了“打开游标”后,游标处于活动状态,指针指向查询结果集的第一条记 录。 3) 提取游标中的记录 语句语法: fetch cursor_name into host_variable[,...n]; 语法说明: (1)提取游标,是指从缓冲区中将指针指向的当前记录取出来,送至主变量供主语 言进一步处理,同时移动游标指针。 (2)在fetch中的主变量个数及数据类型应与定义游标时的select语句目标列一致。 (3)由于执行fetch语句只能提取出结果集中的一条记录,因此fetch语句通常用在主 语言的一个循环结构中,通过循环执行fetch语句逐条取出结果集中的记录进行处 理。 4) 关闭游标 语句语法: close cursor_name;
但是由于sql语言具有面向集合非过程化的特点主要负责对数据库中数据的存取操作在用户界面及控制程序流程方面的功能较弱因此sql语言仅仅只在交互环境中执行很难满足应用需求
嵌入式SQL及动态 及动态SQL 嵌入式 及动态
嵌入式SQL 嵌入式
SQL语言是一种结构化查询语言,在许多数据库系统环境中,一般是作为独立语 言,由用户在交互环境下使用。 但是由于SQL语言具有面向集合、非过程化的特点,主要负责对数据库中数据的 存取操作,在用户界面及控制程序流程方面的功能较弱,因此SQL语言仅仅只在交 互环境中执行很难满足应用需求。而高级语言正好相反,它是一种过程化的、与运 行环境有关的语言,具有较强的用户界面设计及控制程序流程的能力。 由于上述原因,出现了SQL语言的另一种执行方式,就是将SQL语言嵌入到某种 高级语言中使用,以便发挥SQL语言和高级语言的各自优势。在这种方式下使用的 SQL语言称为嵌入式SQL(Embedded SQL),而嵌入SQL语句的高级语言称为主 语言。 在这种混合编程模式下,高级语言需要和SQL语句进行信息交换,两者之间的通信 SQL 内容如下: 1)SQL语句将执行状态信息传递给主语言,主语言根据SQL语句的执行状态来控制 程序流程。向主语言传递SQL执行状态信息,主要通过SQL通信区(SQL Communication Area,简称为SQLCA)实现。SQLCA是一个数据结构,其中有一个 返回执行状态的系统变量sqlcode,主语言在执行完一条SQL语句后均应测试sqlcode 的值,以决定该SQL语句的执行情况并做相应处理。 2)主语言需要提供一些变量参数给SQL语句,方法是在主语言中定义“主变 量”(Host Variable),通过主变量向SQL语句提供参数。 3)SQL语句需要将查询数据库的结果返回给主语言,以便主语言做进一步的处理。 如果SQL语句返回的是单条记录,则可以通过主变量将结果返回到主语言中;如果 SQL语句返回的是多条记录,则可以使用游标将结果返回到主语言中。

《嵌入式SQL》PPT课件_OK

《嵌入式SQL》PPT课件_OK

/*C语言主程序开始*/
{
int count = 0;
char yn;
/*变量yn代表yes或no*/
printf("Please choose the department name(CS/MA/IS): ");
scanf("%s", deptname);
/*为主变量deptname赋值*/
EXEC SQL CONNECT TO TEST@localhost:54321 USER
❖ 不用游标的SQL语句的种类
▪ 说明性语句 ▪ 数据定义语句 ▪ 数据控制语句 ▪ 查询结果为单记录的SELECT语句 ▪ 非CURRENT形式的增删改语句
2021/7/26
26 Database Principles
不用游标的SQL语句(续)
一、查询结果为单记录的SELECT语句 二、非CURRENT形式的增删改语句
2021/7/26
27 Database Principles
一、查询结果为单记录的SELECT语句
❖ 这类语句不需要使用游标,只需要用INTO子句指 定存放查询结果的主变量
[例2] 根据学生号码查询学生信息。假设已经把要查询的学生 的学号赋给了主变量givensno。

Database Principles
游标(续)
❖ 游标
▪ 游标是系统为用户开设的一个数据缓冲区,存放SQ L语句的执行结果
▪ 每个游标区都有一个名字
▪ 用户可以用SQL语句逐一从游标中获取记录,并赋 给主变量,交由主语言进一步处理
2021/7/26
19 Database Principles
四、建立和关闭数据库连接

嵌入式SQL

嵌入式SQL
DECLARE …… FOR UPDATE [字段名] 更新时: UPDATE ……WHERE CURRENT OF 游标名 删除时: DLETE ……WHERE CURRENT OF 游 标名
动态SQL特点 动态SQL特点
应用程序在运行过程中动态地产生并执 行SQL语句 动态SQL比较灵活 动态SQL编程比静态SQL编程复杂 动态SQL在运行时需要DB2 SQL编译器 来编译 要比静态SQL慢一些
语法:EXECUTE IMMEDATE 宿主变量 功能:对包含在宿主变量中的语句进行预处
理,并立即执行它。该语句的作用相当 于将PREPARE和EXECUTE两条语句的 功能组合在一起 示例:EXECUTE IMMEDATE :stmt
动态SQL游标语句动态SQL游标语句-DECLARE
语法:DECLARE 游标名 CURSOR FOR 语句名 功能:将一个游标与一条已预处理过的动态查询 语句相关连,但并不实际执行这一动态查询语 句 示例: EXEC SQL PREPARE Q1 FROM :query; EXEC SQL DECLARE C1 CURSOR FOR Q1
注:使用SELECT INTO语句必须只能返回一行或 者零行,否则就会产生一个错误 必须对SQL语句作错误处理
示例程序一
将表EMPLOYEE中LASTNAME列等于 ‘JOHNSON’的记录的FIRSTNME、 AGE列的值输出(单行查询)
example1.ec
使用游标处理多个结果集
处理一个游标涉及到以下几个步骤: 使用DECLARE CURSOR语句声明一个 游标 使用OPEN语句执行查询和创建结果表 OPEN 使用FETCH语句每次提取一行结果 使用DELETE或UPDATE语句处理行 (如果需要) 使用CLOSE语句终止(关闭)游标
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2011年11月16日 第9页
定义应用程序是自动提交事务或是手工提交事 务 DBParm String 与具体数据库管理系统相关的一组连接参数 SQLCode Long 指示最近一次SQL语句是操作成功还是失败, 其可能取值为:0 操作成功 -1 操作失败 100 操作成功,但无返回数据 SQLNRows Long 最近一次SQL操作所影响的行数(即记录数) SQLDBCode Long 由数据库厂商提供的数据库错误代码 SQLErrText String 与数据库错误代码SQLDBCode相对应的出错信息 SQLReturnData String 返回DBMS想告诉用户的任何附加信息 例如:为事务对象SQLCA赋值 SQLCA.DBMS = "ODBC" //数据库厂商的名称是ODBC SQLCA.AutoCommit = False //程序通过提交语句(COMMIT)提交事 务。 //与数据库管理系统相关的一组连接参数 SQLCA.DBParm = "ConnectString='DSN=stock;UID=sa;PWD='" AutoCommit Boolean
2011年11月16日
第14页
COMMIT、ROLLBACK或CONNECT操作后需要永 、 或 操作后需要永 久更新数据库操作的事务对象名, 久更新数据库操作的事务对象名,缺省时使用事 务对象SQLCA。 务对象 。 执行该语句后, 执行该语句后,将关闭所有先前打开的游标 ),并开始 (CURSOR)和过程(PROCEDURE),并开始 )和过程( ), 一个新的事务。 一个新的事务。 回滚事务语句ROLLBACK 二、回滚事务语句 ROLLBACK(回滚)语句放弃自上一个 (回滚)语句放弃自上一个COMMIT、 、 ROLLBACK或CONNECT语句以来的所有数据库 或 语句以来的所有数据库 操作,关闭所有的游标和过程, 操作,关闭所有的游标和过程,并开始一个新的 事务。 事务。 语法格式: 事务对象名} 语法格式:ROLLBACK {USING事务对象名 ; 事务对象名 缺省时使用事务对象SQLCA。 缺省时使用事务对象 。 功能:回滚语句放弃自上一个COMMIT、 功能:回滚语句放弃自上一个 、 ROLLBACK或CONNECT语句以来的所有数据库 或 语句以来的所有数据库 操作,关闭所有的游标和过程, 操作,关闭所有的游标和过程,并开始一个新的 事务。 事务 2011年11月16日 。 第15页
2011年11月16日 第6页
SQLCA.DBMS="ODBC"; SQLCA.Database="studentinfo"; SQLCA.DBParm="Connectstring='DSN=studentinfodb;uid=dba;pw d=sql'"; connect using SQLCA; if SQLCA.Sqlcode <>0 then messagebox("不能连接上数据库!",SQLCA.sqlerrtext) 不能连接上数据库! 不能连接上数据库 return else messagebox("学生信息查询系统 欢迎使用 学生信息查询系统","欢迎使用 学生信息查询系统 欢迎使用!~n"+"根据学号查询学 根据学号查询学 生详细信息") 生详细信息 open(w_main) end if
2011年11月16日
第10页
6.2 建立和断开数据库连接
一、建立数据库连接 CONNECT是每个访问数据库的 是每个访问数据库的PowerBuilder程序必须使 是每个访问数据库的 程序必须使 用的语句, 用的语句,它的功能是通过事务对象将应用程序与数据库 建立连接,连接成功后,其它SQL语句和数据窗口才能通 建立连接,连接成功后,其它 语句和数据窗口才能通 过事务对象操作数据库。 过事务对象操作数据库。 语法格式: 事务对象名}; 语法格式: CONNECT {USING事务对象名 事务对象名 在执行该语句前,必须正确设置事务对象的数据库连接属性。 在执行该语句前,必须正确设置事务对象的数据库连接属性。 功能: 功能:通过事务对象将应用程序与数据库建立连接 CONNECT是每个访问数据库的 是每个访问数据库的PowerBuilder程序必须使 是每个访问数据库的 程序必须使 用的语句,只有连接成功后,其它SQL语句和数据窗口才 用的语句,只有连接成功后,其它 语句和数据窗口才 能通过事务对象操作数据库。 能通过事务对象操作数据库。
2011年11月16日 第7页
由于PowerBuilder是标准的面向对象客户端应用 是标准的面向对象客户端应用 由于 程序开发系统,因此,在PowerBuilde中控件就 程序开发系统,因此, 中控件就 是一个PowerBuilder对象。和其他对象一样,控 对象。 是一个 对象 和其他对象一样, 件也有属性、函数和事件。 件也有属性、函数和事件。 PowerBuilder提供了丰富的标准控件,利用这些 提供了丰富的标准控件, 提供了丰富的标准控件 控件,开发人员可以实现对窗口的设计和编程, 控件,开发人员可以实现对窗口的设计和编程, 还可以完成应用程序开发的大多数功能。 还可以完成应用程序开发的大多数功能。 PowerBuilder为插入的控件自动命名,开发人员 为插入的控件自动命名, 为插入的控件自动命名 可以修改这些控件,以方便应用程序的开发。 可以修改这些控件,以方便应用程序的开发。另 还可以进行控件布局、 外,还可以进行控件布局、以及定义控件的快捷 键等。 键等。
2011年11月16日
第2页
6.1 事务对象及其应用
PowerBuider使用事务对象(transaction 使用事务对象( 使用事务对象 objects)与数据库通信。PowerBuider的事务 )与数据库通信。 的事务 对象是应用程序与数据库之间进行通信的桥梁, 对象是应用程序与数据库之间进行通信的桥梁, 在应用程序初启时, 在应用程序初启时,系统自动创建一个名为 SQLCA(SQL Communication Area,SQL通讯 , 通讯 的全局事务对象, 区)的全局事务对象,该对象在应用程序的任何地 的全局事务对象 方都可以访问。 方都可以访问。应用程序与数据库的所有通信都 需要通过事务对象来完成, 需要通过事务对象来完成,除了直接使用系统的 缺省事务对象SQLCA外,开发人员也可以创建自 缺省事务对象 外 己的事务对象。 己的事务对象。
2011年11月16日 第8页
二、事务对象的属性
事务对象共有十五个属性, 个用于与数据库建立连接, 事务对象共有十五个属性,前10个用于与数据库建立连接,后5个返 个用于与数据库建立连接 个返 回数据库的操作状态。 回数据库的操作状态。 属性名称 数据类型 意 义 DBMS String 数据库厂商的名称( 数据库厂商的名称(如OR7,Sybase, , , ODBC等) 等 Database String 要连接的数据库名称 UserID String 与数据库连接的用户名或用户标识 DBPass String 与UserID对应的数据库用户的保密字 对应的数据库用户的保密字 Lock String 用于连接数据库的隔离层 LogID String 登录数据库服务器所需的用户名或用户标识 LogPass String 登录数据库服务器所需的保密字 ServerName String 数据库服务器所在的网络名称, 数据库服务器所在的网络名称,即数据库 服务器所在网络的地址名 (x:=SQLSPX,t:=TCPIP) : ,: )
2011年11月16日
第13页
6.3 提交与回滚事务
事务是数据库管理系统完成一项完整工作的逻辑单位, 事务是数据库管理系统完成一项完整工作的逻辑单位,数据 库管理系统保证一个事务要么被完整地完成(称做提交), 库管理系统保证一个事务要么被完整地完成(称做提交), 要么被彻底地取消(称做回滚)。 )。应用程序可以通过 要么被彻底地取消(称做回滚)。应用程序可以通过 COMMIT和ROLLBACK语句控制事务操作。 语句控制事务操作。 和 语句控制事务操作 提交事务语句COMMIT 一、提交事务语句 COMMIT语句提交事务,完成数据库的物理修改。执行该语 语句提交事务, 语句提交事务 完成数据库的物理修改。 句后,将关闭所有先前打开的游标( 句后,将关闭所有先前打开的游标(CURSOR)和过程 ) ),并开始一个新的事务 (PROCEDURE),并开始一个新的事务。 ),并开始一个新的事务。 语法格式: 事务对象名} 语法格式:COMMIT {USING 事务对象名 ; 功能:提交事务, 完成数据库的物理修改。 功能:提交事务 完成数据库的物理修改。
2011年11月16日 第11页
二、断开数据库连接 DISCONNECT语句断开与数据库的连接,执 语句断开与数据库的连接, 语句断开与数据库的连接 行该语句时,它首先执行COMMIT语句(事 语句( 行该语句时,它首先执行 语句 务提交语句),完成事务提交, ),完成事务提交 务提交语句),完成事务提交,然后解除与 数据库的连接。 数据库的连接。 语法格式: DISCONNECT {USING 事务对象 名} ; 功能:断开与数据库的连接。 执行该语句时,它首先执行COMMIT语句(事 务提交语句),完成事务提交,然后解除与 数据库的连接。
2011年11月16日 第12页
例如,在应用对象的 例如,在应用对象的open事件处理程序中我们想使 事件处理程序中我们想使 用缺省的事务对象连接数据库。 用缺省的事务对象连接数据库。 … //为事务对象 为事务对象SQLCA赋值 为事务对象 赋值 CONNECT USING SQLCA; //连接数据库 ; 连接数据库 在应用对象的close事件处理程序中断开与数据库 在应用对象的 事件处理程序中断开与数据库 的连接时 DISCONNECT USING SQLCA; //断开与数据库 ; 断开与数据库 的连接
相关文档
最新文档