SQLRETURN SQLParamData(SQLHSTMT StatementHandle, SQLPOINTER *ValuePtrPtr);
SQLParamData doit être appelée pour chaque paramètre lié dynamiquement par la déclaration SQL_DATA_AT_EXEC. SQLParamData doit être appelée une fois de plus pour déclencher l'exécution effective de l'ordre Sql.
La valeur de ValuePtrPtr est l'adresse qui a été liée par l'appel à SQLBindParameter.
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 char *B;
static char *BBis;
...
if (SQLBindParameter(hOrdreSql, 1, SQL_PARAM_INPUT, SQL_C_BINARY, SQL_LONGVARBINARY, 0, 0, (SQLPOINTER)&B, sizeof(unsigned char *), SQL_DATA_AT_EXEC)!=SQL_SUCCESS)
{
...
}
...
if (SQLExecDirect(hOrdreSql, "insert into emp ('SCOTT', '10', '3264', ?);", SQL_NTS)!=SQL_NEED_DATA)
{
...
}
...
if (SQLParamData(hOrdreSql, (SQLPOINTER)&BBis)!=SQL_SUCCESS)
{
...
}
...
if (SQLPutData(hOrdreSql, (SQLPOINTER)"coucou", SQL_NTS)!=SQL_SUCCESS)
{
...
}
...
if (SQLParamData(hOrdreSql, NULL)!=SQL_SUCCESS)
{
...
}
...