与数据库服务器连接
功能描述
和一个数据库进行连接。
接口原型
EXEC SQL CONNECT TO target [AS connection-name] [USER user-name];
参数说明
参数名 | 参数说明 |
---|---|
target | target(目标) 可以用下面的方法声明: dbname[@hostname][:port] tcp:postgresql://hostname[:port][/dbname][?options] unix:postgresql://hostname[:port][/dbname][?options] 一个包含上面形式的SQL字串文本 一个对包含上面的形式之一的字符串变量的引用 DEFAULT 如果你用文本声明连接目标(也就是说,不是通过一个变量引用), 而且你也不引用这个数值,那么使用普通SQL的大小写无关的规则。 这种情况下,你也可以根据需要独立地对参数使用双引号包围。 实际上,可能用一个(单引号包围)的 字串文本或者变量引用作为连接目标可能更结实一些。 连接目标DEFAULT发起一个用缺省用户名对缺省数据库地连接。 这个时候不应该声明用户名或连接名。 |
connection-name | connection-name(连接名)用于处理一个程序里的多个连接。 如果一个程序只使用一个连接,则可以省略它。 最近打开的连接成为当前连接, 在准备执行SQL语句的时候,缺省时会使用这个连接。(连接名可以为宿主变量)。 |
user-name | 声明user-name(用户名)的方法也有几种不同方式: username username password username ECPGIDENTIFIED BY password username USING password 参数用户名和密码可以是一个SQL标识, 一个字符变量,或者一个字符串。 |
返回值
无
其他
类似于EXEC SQL CONNECT TO :target USER :user USING :passwd;
这种前缀了冒号的变量采用的是变量引用的方法。
举例说明使用接口:
EXEC SQL CONNECT TO mydb@sql.mydomain.com;
EXEC SQL CONNECT TO unix:postgresql://sql.mydomain.com/mydb AS myconnection USER john;
EXEC SQL BEGIN DECLARE SECTION;
const char *target = "mydb@sql.mydomain.com";
const char *user = "john";
const char *passwd = "secret";
EXEC SQL END DECLARE SECTION;
EXEC SQL CONNECT TO :target USER :user USING :passwd;
/* or EXEC SQL CONNECT TO :target USER :user/:passwd; */