OCIDefineByPos

Prototypes

sb4 OCIDefineByPos(OCIStmt *stmtp, OCIDefine **defnp, OCIError *errhp, ub4 position, dvoid *valuep, sb4 value_sz, ub2 dty, dvoid *indp, ub2 *rlenp, ub2 *rcodep, ub4 mode);

Description

Lie le résultat de numéro position au handle de l'ordre Sql stmtp selon le mode mode. La numérotation des résultats commence à 1.

Le type natif du résultat est donné par dty.

La taille maximale d'une valeur du résultat est donnée par value_sz.

La valeur du résultat est transmise par l'adresse valuep et son indicateur ou sa taille par indp.

La valeur du résultat lu est renvoyée par rlenp.

Le lien du résultat est identifié par le handle defnp.

En cas d'erreur, un compte-rendu est associé au handle errhp.

Les valeurs possibles de dty sont les suivantes :

Les valeurs possibles de indp sont les suivantes :

Les valeurs possibles de mode sont les suivantes :

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

Exemple

#include <ociap.h>

static OCISvcCtx *hConnexion;
static OCIError *hErreur;
static OCIDefine *hE;
static long E;
static ub2 IndicateurE;
static ub2 TailleE;
static OCIDefine *hTableE;
static long TableE[256];
static ub2 IndicateurTableE[256];
static ub2 TailleTableE[256];
static OCIDefine *hC;
static char C[20];
static ub2 IndicateurC;
static ub2 TailleC;
static OCIDefine *hTableC;
static char TableC[256][20];
static ub2 IndicateurTableC[256];
static ub2 TailleTableC[256];

...
/* Parametre unitaire. */
if (OCIDefineByPos(hOrdreSql, &hE, hErreur, 1, (dvoid *)&E, sizeof(long), SQLT_NUM, (dvoid *)&IndicateurE, &IndicateurE, &TailleE, OCIDEFAULT)!=OCI_SUCCESS) ...
/* Parametre en tableau. */
if (OCIDefineByPos(hOrdreSql, &hTableE, hErreur, 2, (dvoid *)TableE, sizeof(long), SQLT_NUM, (dvoid *)IndicateurTableE, IndicateurTableE, TailleTableE, OCIDEFAULT)!=OCI_SUCCESS) ...
/* Parametre unitaire. */
if (OCIDefineByPos(hOrdreSql, &hC, hErreur, 1, (dvoid *)C, sizeof(char)*20, SQLT_STR, (dvoid *)&IndicateurC, &IndicateurC, &TailleC, OCIDEFAULT)!=OCI_SUCCESS) ...
/* Parametre en tableau. */
if (OCIDefineByPos(hOrdreSql, &hTableC, hErreur, 2, (dvoid *)TableC, sizeof(char)*20, SQLT_STR, (dvoid *)IndicateurTableC, IndicateurTableC, TailleTailleC, OCIDEFAULT)!=OCI_SUCCESS) ...

Voir aussi

OCIBindByPos pour lier un paramètre d'une requête. OCIHandleFree pour libérer un ordre Sql.