29.2. Se connecter au serveur de bases de données

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 des façons suivantes :

Si vous spécifiez la cible de connexion littéralement (c'est-à-dire non pas via une variable de référence) et que vous ne mettez pas la valeur entre guillemets, alors les règles d'insensibilité à la casse du SQL standard sont appliquées. Dans ce cas, vous pouvez aussi mettre les paramètres individuels séparément entre guillemets doubles si cela s'avérait nécessaire. En pratique, utiliser une chaîne littérale (entre guillemets simples) ou une variable de référence génère moins d'erreurs. La cible de connexion DEFAULT initie une connexion sur la base de données par défaut avec l'utilisateur par défaut. Aucun nom d'utilisateur ou nom de connexion ne pourrait ê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 tard dans ce chapitre).

Voici quelques exemples d'instructions CONNECT :

EXEC SQL CONNECT TO mabase@sql.mondomaine.com;

EXEC SQL CONNECT TO 'unix:postgresql://sql.mondomaine.com/mabase' AS
maconnexion USER john;

EXEC SQL BEGIN DECLARE SECTION;
const char *cible = "mabase@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, à laquelle il est fait allusion ci-dessus comme variable de référence. Vous verrez dans les prochaines sections comment les variables C peuvent être utilisées dans des instructions SQL lorsqu'elles sont préfixée par un caractère deux-points.

Soyez averti que le format de la cible de connexion n'est pas spécifié dans le standard SQL. Ainsi, si vous voulez développer des applications portables, vous devriez utiliser quelque chose basé sur le dernier exemple ci-dessus pour encapsuler la chaîne de la cible de connexion quelque part.