Documentation PostgreSQL 7.4.29 | ||||
---|---|---|---|---|
Précédent | Arrière rapide | Avance rapide | Suivant |
pg_execute
soumet une commande au serveur
PostgreSQL.
Si la commande n'est pas une instruction SELECT, le nombre de lignes affectées par la commande est renvoyé. Si la commande est une instruction INSERT et qu'une seule ligne est insérée, l'OID de la ligne insérée est stocké dans la variable oidVar si l'argument optionnel -oid est fourni.
Si la commande est une instruction SELECT, alors, pour chaque ligne du résultat, les valeurs de la ligne sont stockées dans la variable tableauVar, si celle-ci est fournie, en utilisant les noms de colonnes comme indices de tableau, sinon elles sont stockées dans les variables nommées suivant les noms de colonne. Enfin, la procedure optionnelle est exécutée si fournie. (Oublier procedure n'a probablement de sens que si la requête ne renvoie qu'une ligne.) Le nombre de lignes sélectionnées est renvoyé.
La procedure peut utiliser les commandes Tcl
break, continue et
return avec le comportement attendu. Notez que si la
procedure exécute return, alors
pg_execute
ne renvoie pas le nombre de lignes affectées.
pg_execute
est une fonction plus récente qui
fournit un sur-ensemble des fonctionnalités de
pg_select
et peut remplacer pg_exec
dans de nombreux cas où l'accès à la poignée résultat n'est pas nécessaire.
Pour les erreurs générées par le serveur, pg_execute
lancera une erreur Tcl et renverra une liste à deux éléments. Le premier
élément est un code d'erreur tel que PGRES_FATAL_ERROR et
le second élément est le texte d'erreur du serveur. Pour des erreurs plus
sérieuses, tel qu'un échec dans la communication avec le serveur,
pg_execute
lancera une erreur Tcl et renverra juste le
texte du message d'erreur.
Indique le nom de la variable tableau où les lignes de résultat sont stockées, indexées par les noms de colonnes. Ceci est ignoré si chaineCommande n'est pas une instruction SELECT.
Indique le nom d'une variable dans lequel l'OID résultant d'une instruction INSERT est stocké.
La poignée de la connexion où exécuter la commande.
La commande SQL à exécuter.
Le procédure optionnelle à exécuter pour chaque ligne de resultat d'une instruction SELECT.
Dans les exemples suivants, la vérification d'erreur avec catch a été omise pour des raisons de clarté.
Insère une ligne et conserve l'OID dans result_oid :
pg_execute -oid result_oid $pgconn "INSERT INTO matable VALUES (1);"
Affiche les colonnes element et valeur pour chaque ligne :
pg_execute -array d $pgconn "SELECT element, valeur FROM matable;" { puts "Item=$d(element) Value=$d(valeur)" }
Trouve les valeurs maximum et minimum et les stocke dans $s(max) et $s(min):
pg_execute -array s $pgconn "SELECT max(valeur) AS max, min(valeur) AS min FROM matable;"
Trouve les valeurs maximum et minimum et les stocke dans $max et $min:
pg_execute $pgconn "SELECT max(valeur) AS max, min(valeur) AS min FROM mytable;"
Précédent | Sommaire | Suivant |
pg_select | Niveau supérieur | pg_listen |