SQLGetDiagRec

Prototypes

SQLRETURN SQLGetDiagRec(SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT RecNumber, SQLCHAR *Sqlstate, SQLINTEGER *NativeErrorPtr, SQLCHAR *MessageText, SQLSMALLINT BufferLength, SQLSMALLINT *TextLengthPtr);

Description

Lit la RecNumber ème ligne de diagnostic de l'exécution de la dernière API sur le handle Handle de HandleType. Le décompte des lignes commence à 1.

L'état est rangé dans SqlState, le code erreur dans NativeErrorPtr et le message dans MessageTexte de taille maximale BufferLength.

Les valeurs possibles de HandleType 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 SQL_CHAR Etat[256];
static SQL_INTEGER CodeErreur;
static SQL_CHAR Message[256];
static SQL_INTEGER TailleMessage;

...
if (SQLExecDirect(hOrdreSql, "delete from emp; delete from dept;", SQL_NTS)==SQL_SUCCESS) ...
if (SQLGetDiagRec(SQL_HANDLE_STMT, (SQLHANDLE)hOrdreSql, 1, Etat, &CodeErreur, Message, 256, &TailleMessage)==SQL_SUCCESS) ...
if (SQLMoreResults(SQL_HANDLE_DBC, hConnexion, SQL_ROLLBACK)!=SQL_SUCCESS) ...
if (SQLGetDiagRec(SQL_HANDLE_STMT, (SQLHANDLE)hOrdreSql, 1, Etat, &CodeErreur, Message, 256, &TailleMessage)==SQL_SUCCESS) ...

Voir aussi

SQLMoreResults pour lire le diagnostic de l'ordre Sql exécuté suivant.