CONNECT — établit une connexion à la base de données
CONNECT TOconnection_target
[ ASnom_connexion
] [ USERconnection_user_name
] CONNECT TO DEFAULT CONNECTconnection_user_name
DATABASEconnection_target
La commande CONNECT
établit une connexion
entre le client et le serveur PostgreSQL.
connection_target
#
connection_target
spécifie le serveur cible de la connexion dans une des formes
suivantes :
database_name
] [ @
host
] [ :
port
] #Se connecter par TCP/IP
unix:postgresql://
host
[ :
port
] /
[ database_name
] [ ?
connection_option
] #Se connecter par une socket de domaine Unix
tcp:postgresql://
host
[ :
port
] /
[ database_name
] [ ?
connection_option
] #Se connecter par TCP/IP
contient une valeur d'une des formes précédentes
variable hôte du type char[]
ou VARCHAR[]
contenant une valeur d'une des
formes précédentes
connection_name
#Un identifiant optionnel pour la connexion, afin qu'on puisse y faire référence dans d'autres commandes. Cela peut être un identifiant SQL ou une variable hôte.
connection_user
#Le nom d'utilisateur pour une connexion à la base de données.
Ce paramètre peut aussi spécifier un nom d'utilisateur et un mot de passe, en utilisant une des formes
,
user_name
/password
, or
user_name
IDENTIFIED BY password
.
user_name
USING password
Nom d'utilisateur et mot de passe peuvent être des identifiants SQL, des constantes de type chaîne, ou des variables hôtes.
DEFAULT
#Utiliser tous les paramètres de connexion par défaut, comme défini par libpq.
Voici plusieurs variantes pour spécifier des paramètres de connexion :
EXEC SQL CONNECT TO "connectdb" AS main; EXEC SQL CONNECT TO "connectdb" AS second; EXEC SQL CONNECT TO "unix:postgresql://200.46.204.71/connectdb" AS main USER connectuser; EXEC SQL CONNECT TO "unix:postgresql://localhost/connectdb" AS main USER connectuser; EXEC SQL CONNECT TO 'connectdb' AS main; EXEC SQL CONNECT TO 'unix:postgresql://localhost/connectdb' AS main USER :user; EXEC SQL CONNECT TO :db AS :id; EXEC SQL CONNECT TO :db USER connectuser USING :pw; EXEC SQL CONNECT TO @localhost AS main USER connectdb; EXEC SQL CONNECT TO REGRESSDB1 as main; EXEC SQL CONNECT TO AS main USER connectdb; EXEC SQL CONNECT TO connectdb AS :id; EXEC SQL CONNECT TO connectdb AS main USER connectuser/connectdb; EXEC SQL CONNECT TO connectdb AS main; EXEC SQL CONNECT TO connectdb@localhost AS main; EXEC SQL CONNECT TO tcp:postgresql://localhost/ USER connectdb; EXEC SQL CONNECT TO tcp:postgresql://localhost/connectdb USER connectuser IDENTIFIED BY connectpw; EXEC SQL CONNECT TO tcp:postgresql://localhost:20/connectdb USER connectuser IDENTIFIED BY connectpw; EXEC SQL CONNECT TO unix:postgresql://localhost/ AS main USER connectdb; EXEC SQL CONNECT TO unix:postgresql://localhost/connectdb AS main USER connectuser; EXEC SQL CONNECT TO unix:postgresql://localhost/connectdb USER connectuser IDENTIFIED BY "connectpw"; EXEC SQL CONNECT TO unix:postgresql://localhost/connectdb USER connectuser USING "connectpw"; EXEC SQL CONNECT TO unix:postgresql://localhost/connectdb?connect_timeout=14 USER connectuser;
Voici un programme exemple qui illustre l'utilisation de variables hôtes pour spécifier des paramètres de connexion :
int main(void) { EXEC SQL BEGIN DECLARE SECTION; char *dbname = "testdb"; /* nom de la base */ char *user = "testuser"; /* nom d'utilisateur pour la connexion */ char *connection = "tcp:postgresql://localhost:5432/testdb"; /* chaîne de connexion */ char ver[256]; /* buffer pour contenir la chaîne de version */ EXEC SQL END DECLARE SECTION; ECPGdebug(1, stderr); EXEC SQL CONNECT TO :dbname USER :user; EXEC SQL SELECT pg_catalog.set_config('search_path', '', false); EXEC SQL COMMIT; EXEC SQL SELECT version() INTO :ver; EXEC SQL DISCONNECT; printf("version: %s\n", ver); EXEC SQL CONNECT TO :connection USER :user; EXEC SQL SELECT pg_catalog.set_config('search_path', '', false); EXEC SQL COMMIT; EXEC SQL SELECT version() INTO :ver; EXEC SQL DISCONNECT; printf("version: %s\n", ver); return 0; }
CONNECT
est spécifié dans le standard SQL, mais
le format des paramètres de connexion est
spécifique à l'implémentation.