暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

南大通用GBase8s 常用SQL语句(120)

刚刚 好 2022-04-19
158


1.1 DISCONNECT 语句

使用 DISCONNECT 语句终止应用程序和数据库服务器之间的连接。

语法


元素

描述

限制

语法

connection

指定要终止的连接的字符串

CONNECT 语句指定的连接名称

引用字符串

connection_var

持有连接名称的主变量

必须是一个固定长度的字符数据类型

特定于语言

用法

DISCONNECT 终止到数据库服务器的连接。如果数据库是打开的,则在连接断开之前该数据库会关闭。即使只连接到一个特定的数据库,DISCONNECT 也会终止到数据库服务器的连接。如果 DISCONNECT 没有终止当前的连接,则不会更改当前环境的连接上下文。

DISCONNECT PREPARE 语句中作为语句文本是无效的。

 ESQL/C ,如果您使用 connection  connection_var 断开连接,那么在指定的连接不是当前连接或休眠连接的情况下,DISCONNECT 会生成一个错误。 

DEFAULT 选项

DISCONNECT DEFAULT 断开缺省连接。

缺省连接是指以下一种连接:

l  CONNECT TO DEFAULT 语句建立的连接

l  DATABASE CREATE DATABASE 语句建立的隐式缺省连接

您可以使用 DISCONNECT 断开缺省连接。如果 DATABASE 语句没有指定数据库服务器(如下例所示),则缺省数据库服务器建立缺省的连接:

EXEC SQL database 'stores_demo';

          . . .

          EXEC SQL disconnect default;

如果 DATABASE 语句指定了数据库服务器(如下例所示),则向该数据库服务器建立缺省的连接:

EXEC SQL database 'stores_demo@mydbsrvr';

          . . .

EXEC SQL disconnect default;

在以上任何一种情况下,DISCONNECT DEFAULT 选项会断开这个缺省的连接。有关更多信息,请参阅缺省连接规范。

指定 CURRENT 关键字

DISCONNECT CURRENT 语句终止当前的连接。例如,以下程序段中的 DISCONNECT 语句终止到数据库服务器 mydbsrvr 的当前连接:

CONNECT TO 'stores_demo@mydbsrvr';

        . . .

DISCONNECT CURRENT;

当事务活动时

DISCONNECT 在事务期间生成一个错误。事务仍处于活动状态,并且应用程序必须显式地提交或回滚该事务。如果在没有发出 DISCONNECT 的情况下应用程序终止(例如是由于系统故障或程序错误),则会回滚活动的事务。

但是,在兼容 ANSI 的数据库中,如果在非交互方式下没有发出 CLOSE DATABASE COMMIT WORK DISCONNECT 语句便退出 DB-Access 时没有遇到错误,则数据库服务器自动提交任何打开的事务。

在线程安全环境中断开连接

如果您在线程安全的 GBase 8s ESQL/C 应用程序中发出 DISCONNECT 语句,请记住活动的连接只可以从它活动所在的线程内被断开。因此,一个线程无法断开另一个线程的活动连接。如果进行这种尝试,DISCONNECT 语句会生成一个错误。

但是一旦连接变为休眠状态,任何其它线程即可断开该连接,除非有一个正在进行的事务与使用 CONNECT WITH CONCURRENT TRANSACTION 子句建立的休眠连接相关联。如果休眠的连接不是用 WITH CONCURRENT TRANSACTION 子句建立的,则 DISCONNECT 会试图在断开连接时生成一个错误。

有关对线程安全的 GBase 8s ESQL/C 应用程序中的连接的解释,请参阅 SET CONNECTION 语句。

指定 ALL 选项

使用关键字 ALL 终止至该时刻为止由应用程序建立的所有连接。例如,下面的 DISCONNECT 语句断开当前的连接以及所有休眠的连接:

DISCONNECT ALL;

GBase 8s ESQL/C 中,ALL 关键字对多线程的应用程序的效果同对单线程应用程序的效果相同。执行 DISCONNECT ALL 语句会引起所有线程中的所有连接终止。但是,如果任何一个连接正在使用中,或者有一个与该连接相关联的正在处理的事务,则 DISCONNECT ALL 语句失败。如果这些条件中的任何一个为真,则不会断开任何连接。

 

 

 

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论