PostgreSQLLa base de données la plus sophistiquée au monde.

SPI_cursor_open_with_args

SPI_cursor_open_with_args — ouvre un curseur en utilisant une requête et des paramètres

Synopsis

Portal SPI_cursor_open_with_args(const char *name,
                                 const char *command,
                                 int nargs, Oid *argtypes,
                                 Datum *values, const char *nulls,
                                 bool read_only, int cursorOptions)

Description

SPI_cursor_open_with_args initialise un curseur (en interne, un portail) qui exécutera la requête spécifié. La plupart des paramètres ont la même signification que les paramètres correspondant de SPI_prepare_cursor et SPI_cursor_open.

Pour une exécution seule, cette fonction sera préférée à SPI_prepare_cursor suivie de SPI_cursor_open. Si la même commande doit être exécutée avec plusieurs paramètres différents, il n'y a pas de différences sur les deux méthode, la replanification a un coût mais bénéficie de plans personnalisés.

Les données passées seront copiées dans le portail du curseur, donc elles seront libérées alors que le curseur existe toujours.

Arguments

const char * name

nom du portail, ou NULL pour que le système sélectionne un nom de lui-même

const char * command

chaîne de commande

int nargs

nombre de paramètres en entrée ($1, $2, etc.)

Oid * argtypes

un tableau contenant les OID des types de données des paramètres

Datum * values

un tableau des valeurs actuelles des paramètres

const char * nulls

un tableau décrivant les paramètres NULL

Si nulls vaut NULL, alors SPI_cursor_open_with_args suppose qu'aucun paramètre n'est NULL.

bool read_only

true pour une exécution en lecture seule

int cursorOptions

masque de bits des options du curseur : zéro cause le comportement par défaut

Valeur de retour

Pointeur du portail contenant le curseur. Notez qu'il n'y a pas de convention pour le renvoi des erreurs ; toute erreur sera rapportée par elog.