SQLRETURN SQLBindCol(SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType, SQLPOINTER TargetValuePtr, SQLINTEGER BufferLength, SQLLEN *StrLen_or_Ind);
Le type natif du résultat est donné par TargetType.
La taille de toutes les valeurs des résultats en tableau est donnée par BufferLength.
La valeur du résultat est récupérée par l'adresse TargetValuePtr et son indicateur ou sa taille par StrLen_or_IndPtr.
Les valeurs possibles de TargetType 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 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];
...
/* Resultat unitaire. */
if (SQLBindCol(hOrdreSql, 1, SQL_C_SLONG, (SQLPOINTER)&E, sizeof(long), &IndicateurE)!=SQL_SUCCESS)
{
...
}
...
/* Resultat en tableau. */
if (SQLBindCol(hOrdreSql, 1, SQL_C_SLONG, (SQLPOINTER)TableE, sizeof(long)*256, TableIndicateurE)!=SQL_SUCCESS)
{
...
}
...
/* Resultat unitaire. */
if (SQLBindCol(hOrdreSql, 1, SQL_C_CHAR, (SQLPOINTER)&C, sizeof(char)*20, &IndicateurC)!=SQL_SUCCESS)
{
...
}
...
/* Resultat en tableau. */
if (SQLBindCol(hOrdreSql, 1, SQL_C_CHAR, (SQLPOINTER)TableC, sizeof(char)*20*256, TableIndicateurC)!=SQL_SUCCESS)
{
...
}
...