SQLBindParameter

Prototypes

SQLRETURN SQLBindParameter(SQLHSTMT StatementHandle, SQLUSMALLINT ParameterNumber, SQLSMALLINT InputOutputType, SQLSMALLINT ValueType, SQLSMALLINT ParameterType, SQLUINTEGER ColumnSize, SQLSMALLINT DecimalDigits, SQLPOINTER ParameterValuePtr, SQLINTEGER BufferLength, SQLINTEGER *StrLen_or_IndPtr);

Description

Lie le paramètre de numéro ParameterNumber au handle de l'ordre Sql StatementHandle. La numérotation des paramètres commence à 1.

Le mode de passage du paramètre est donné par InputOutputType. Le type natif du paramètre est donné par ValueType. Le type Sql du paramètre est donné par ParameterType.

La taille maximale d'une valeur du paramètre est donnée par ColumnSize. La taille de toutes les valeurs des paramètres en tableau est donnée par BufferLength.

La valeur du paramètre est transmise par l'adresse ParameterValuePtr et son indicateur ou sa taille par StrLen_or_IndPtr.

Les valeurs possibles de InputOutputType sont les suivantes :

Les valeurs possibles de ValueType sont les suivantes :

Les valeurs possibles de ParameterType sont les suivantes :

Les valeurs possibles de StrLen_or_IndPtr sont les suivantes :

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

Exemple

#include <windows.h>
#include <sql.h>
#include <sqlext.h>
#include <sqltypes.h>

static SQLHANDLE hOrdreSql;
static long E;
static SQLINTEGER IndicateurE;
static long TableE[256];
static SQLINTEGER IndicateurTableE[256];
static char C[20];
static SQLINTEGER IndicateurC;
static char TableC[256][20];
static SQLINTEGER IndicateurTableC[256];

...
/* Parametre unitaire. */
if (SQLBindParameter(hOrdreSql, 1, SQL_PARAM_INPUT, SQL_C_SLONG, SQL_INTEGER, sizeof(long), 0, (SQLPOINTER)&E, sizeof(long), &IndicateurE)!=SQL_SUCCESS) ...
/* Parametre en tableau. */
if (SQLBindParameter(hOrdreSql, 2, SQL_PARAM_INPUT, SQL_C_SLONG, SQL_INTEGER, sizeof(long), 0, (SQLPOINTER)TableE, sizeof(long)*256, TableIndicateurE)!=SQL_SUCCESS) ... /* Parametre unitaire. */
if (SQLBindParameter(hOrdreSql, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_VARCHAR, sizeof(char)*20, 0, (SQLPOINTER)&C, sizeof(char)*20, &IndicateurC)!=SQL_SUCCESS) ...
/* Parametre en tableau. */
if (SQLBindParameter(hOrdreSql, 2, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_VARCHAR, sizeof(char)*20, 0, (SQLPOINTER)TableC, sizeof(char)*20*256, TableIndicateurC)!=SQL_SUCCESS) ...

Voir aussi

SQLSetStmtAttr pour fixer la taille des tableaux des paramètres d'un ordre Sql. SQLBindCol pour lier un résultat d'une requête. SQLFreeStmt pour libérer un ordre Sql. SQLParamData pour préparer la transmission de la valeur d'un paramètre passé à l'exécution. SQLPutData pour écrire la valeur d'un paramètre passé à l'exécution.