一、 连接 数据库
语法一:
EXEC SQL CONNECT TO ①{dbname@dbservername | dbname | @dbservername | pathname/dbname | pathname/dbname@dbservername | :db_env variable}
[AS ②connection_name]
USER ③{user identifier | user_id variable} USING ④auth varibale
说明:
参数1:
①、dbname@dbservername:数据库@服务器名
②、dbname:数据库名。连接至默认服务器或服务器地址在DBPATH环境变量中时,可不使用@dbservername。
③、@dbservername:服务器名。当使用@dbservername时,而不使用dbname时,必须DATABASE、CREATE DATABASE或START DATABASE语句打开数据库。
④、pathname/dbname: 通过路径指定*.dbs数据库
⑤、pathname/dbname@dbservername: 通过路径指定服务器上的*.dbs数据库
⑥、:db_env variable: 宿主变量的值为以上五种情况中的一种
参数2:
①、connection_name:连接名
可省略。如果仅仅使用一个连接,则无需指定连接名。如果使用多个连接,则可以使用SET CONNECTION来使用不同的连接。(注:一个进程中,连接名不允许重复!)
参数3:
①、user identifier:登陆名(由单引号括起)
指定的用户名必须存在于/etc/passwd文件。如果连接至远程服务器,登录名必须存在于本地和远程数据库服务器上的passwd文件中。
②、user_id variable: 宿主变量。其值与user identifier一致。
参数4:
①、auth variable:宿主变量。其值为user identifier和user_id variable的密码。
例如:“ EXEC SQL
CONNECT TO hhdd@dhcc AS :cnname USER :usrname USING :passwd ”,数据库为hhdd@dhcc,登录名为:usrname,密码为:password。缺省的超时时间为10秒。如果指定连接的服务器没有响应这个连接请求,或者连接超时,那么系统会返回错误信息。我们可以使用“SET OPTION”命令设置连接超时的时间值
语法二:
EXEC SQL CONNECT TO DEFAULT
说明:
在CONNECT使用DEFAULT选项时,必须使用DATABASE语句、CREATE DATABASE语句或START DATABASE语句在默认的数据库环境下去打开或创建一个数据库
二、断开数据库的连接
语法:
EXEC SQL DISCONNECT [connection_name | ALL | CURRENT]
说明:
1. connection_name:连接名
2. ALL:断开所有连接
3. CURRENT:断开当前连接
三、实例说明
请看下面的例子来理解CONNECT和DISCONNECT:
EXEC SQL CONNECT TO :dbname1 AS :cnname1 USER :usrname1 USING :passwd1;
EXEC SQL CONNECT TO :dbname2 AS :cnname2 USER :usrname2 USING :passwd2;
EXEC SQL SET CONNECTION :cnname1;
EXEC SQL SELECT name FROM sysobject INTO :name;
EXEC SQL SET CONNECTION :cnname2;
EXEC SQL SELECT name from sysobject INTO :name;
EXEC SQL DISCONNECT :cnname1;
EXEC SQL DISCONNECT :cnname2;
在上面这个例子中,第一个select 语句查询dbname1数据库。第二个SELECT语句查询dbname2数据库。当然,你也可以使用“EXEC SQL DISCONNECT ALL; ”来断开所有的连接。