SQLRETURN SQLBindParameter(SQLHSTMT StatementHandle, SQLUSMALLINT ParameterNumber, SQLSMALLINT InputOutputType, SQLSMALLINT ValueType, SQLSMALLINT ParameterType,
SQLUINTEGER ColumnSize, SQLSMALLINT DecimalDigits, SQLPOINTER ParameterValuePtr, SQLINTEGER BufferLength, SQLINTEGER *StrLen_or_IndPtr);
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 :
unsigned char
où seul le bit de poids faible est utilisé.unsigned char
.unsigned short
.long
.double
.unsigned char *
.char *
.wchar_t *
.TIMESTAMP_STRUCT
.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.
#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)
{
...
}
...