ESQL/C连接和断开数据库(INFORMIX)

一、 连接 数据库
语法一:
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; ”来断开所有的连接。
    

你可能感兴趣的:(ESQL/C连接和断开数据库(INFORMIX))