Documentation PostgreSQL 8.1.23 > Interfaces client > ECPG - SQL embarqué dans du C > Se connecter au serveur de bases de données | |
ECPG - SQL embarqué dans du C | Fermer une connexion |
La connexion à une base de données se fait en utilisant l'instruction suivante :
EXEC SQL CONNECT TO cible [AS nom-connexion] [USER nom-utilisateur];
La cible peut être spécifiée d'une des façons suivantes :
Si la cible de connexion est spécifiée littéralement (c'est-à-dire non pas via une variable de référence) et la valeur n'est pas mise entre guillemets, les règles d'insensibilité à la casse du SQL standard sont appliquées. Dans ce cas, il est possible, si cela s'avérait nécessaire, d'encadrer séparément les paramètres individuels de guillemets doubles. En pratique, l'utilisation d'une chaîne littérale (entre guillemets simples) ou d'une variable de référence engendre moins d'erreurs. La cible de connexion DEFAULT initie une connexion à la base de données standard avec l'utilisateur standard. Aucun nom d'utilisateur ou de connexion ne peut être spécifié isolément dans ce cas.
Il existe également différentes façons de préciser le nom de l'utilisateur :
Comme indiqué ci-dessus, les paramètres nomutilisateur et motdepasse peuvent être un identificateur SQL, une chaîne SQL littérale ou une référence à une variable de type caractère.
nom-connexion est utilisé pour gérer plusieurs connexions dans un même programme. Il peut être omis si un programme n'utilise qu'une seule connexion. La connexion la plus récemment ouverte devient la connexion courante, utilisée par défaut lorsqu'une instruction SQL est à exécuter (voir plus loin dans ce chapitre).
Voici quelques exemples d'instructions CONNECT :
EXEC SQL CONNECT TO ma_base@sql.mondomaine.com; EXEC SQL CONNECT TO 'unix:postgresql://sql.mondomaine.com/ma_base' AS maconnexion USER john; EXEC SQL BEGIN DECLARE SECTION; const char *cible = "ma_base@sql.mondomaine.com"; const char *utilisateur = "john"; EXEC SQL END DECLARE SECTION; ... EXEC SQL CONNECT TO :cible USER :utilisateur;
La dernière forme utilise la variante dite de la variable de référence, à laquelle il est fait allusion ci-dessus. Nous verrons dans les prochaines sections comment utiliser des variables C dans des instructions SQL en les préfixant par un caractère deux-points.
Il est à noter que le format de la cible de connexion n'est pas spécifié dans le standard SQL. Ainsi, lorsque l'on souhaite développer des applications portables, il est préférable d'utiliser une syntaxe basée sur le dernier exemple ci-dessus pour encapsuler la chaîne de la cible de connexion.