PQprepare

Prototypes

PGresult *PQprepare(PGconn *conn, const char *stmtName, const char *query, int nParams, const Oid *paramTypes);

Description

Prépare l'ordre Sql de nom stmtName dont le source est query pour la connexion conn.

L'ordre Sql comporte nParams paramètres dont la description est définie dans le tableau paramTypes. Les valeurs possibles sont :

Le résultat est non NULL en cas de succès.

Exemple

#include <server/pgtime.h>
#include <libpq-fe.h>
#include <libpq/libpq-fs.h>

static PGconn *hConnexion;
static PGresult *hOrdreSql;
static Oid TableTypes[2];
static char TableValeurs[2][256];
static int TableTailles[2];
static int TableFormats[2];
static int NbEnregistrements;

...
TableParametres[0]=INT4OID;
sprintf(TableValeurs[0], "%ld", ...);
TableTailles[0]=strlen(TableValeurs[0]);
TableFormats[0]=1;
TableParametres[1]=TEXTOID;
strcat(TableValeurs[1], ...);
TableTailles[1]=strlen(TableValeurs[1]);
TableFormats[1]=0;
hOrdreSql=PQprepare(hConnexion, "MonOrdreSql", "selection ename, deptno from emp;", 2, TableTypes);
...
if (PQstatus(hConnexion)!=CONNECTION_OK)) ...
if (PQexecPrepared(hConnexion, "MonOrdreSql", 2, TableValeurs, TableTailles, TableFormats, 1)!=PGRES_COMMAND_OK) ...
NbEnregistrements=PQntuples(hOrdreSql);
if (PQstatus(hConnexion)!=CONNECTION_OK)) ...
PQclear(hOrdreSql);
...

Voir aussi

PQexecPrepared pour exécuter un ordre Sql. PQexec pour exécuter un ordre Sql sans préparation. PQclear pour libérer un ordre Sql.