SQLFetch

Prototypes

SQLRETURN SQLFetch(SQLHSTMT StatementHandle);

Description

Lit l'enregistrement suite à l'exécution de l'ordre Sql associé au handle StatementHandle.

Si les résultats sont liés par tableau, alors un paquet d'enregistrements est lu dont la taille est limitée par la taille des tableaux. La taille utilisée est retrouvée par l'appel à SQLGetStmtAttr.

Le résultat est SQL_SUCCESS en cas de succès et tant qu'il reste des enregistrements.

Exemple

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

static SQLHANDLE hOrdreSql;
static long E;
static SQLINTEGER IndicateurE;
static char TableC[256][20];
static SQLINTEGER IndicateurTableC[256];
static SQLINTEGER NbEnregistrements;

...
/* Resultat unitaire. */
if (SQLBindCol(hOrdreSql, 1, SQL_C_SLONG, (SQLPOINTER)&E, sizeof(long), &IndicateurE)!=SQL_SUCCESS) ...
if (SQLExecDirect(hOrdreSql, "select empno from emp where ename='SCOTT';")!=SQL_SUCCESS) ...
if (SQLFetch(hOrdreSql)!=SQL_SUCCESS) ...
/* Resultat en tableau. */
if (SQLBindCol(hOrdreSql, 1, SQL_C_CHAR, (SQLPOINTER)TableC, sizeof(char)*20*256, TableIndicateurC)!=SQL_SUCCESS) ...
if (SQLSetStmtAttr(hConnexion, SQL_ATTR_ROW_ARRAY_SIZE, (SQLPOINTER)256, SQL_NTS)!=SQL_SUCCESS) ...
if (SQLGetStmtAttr(hConnexion, SQL_ATTR_ROWS_FETCHED_PTR, (SQLPOINTEUR)&NbEnregistrements, sizeof(SQLINTEGER), NULL)!=SQL_SUCCESS) ...
if (SQLExecDirect(hOrdreSql, "select ename from emp where deptno=10;")!=SQL_SUCCESS) ...
if (SQLFetch(hOrdreSql)!=SQL_SUCCESS) ...

Voir aussi

SQLSetStmtAttr pour fixer la taille des tableaux des résultats d'un ordre Sql. SQLExecDirect pour exécuter un ordre Sql sans préparation. SQLExecute pour exécuter un ordre Sql. SQLGetStmtAttr pour lire la valeur d'une option de l'ordre Sql.