Zeilenstatusarray
Zusätzlich zu Daten kann SQLFetch und SQLFetchScroll ein Array zurückgeben, das den Status jeder Zeile im Rowset angibt. Dieses Array wird über das attribut SQL_ATTR_ROW_STATUS_PTR-Anweisung angegeben. Dieses Array wird von der Anwendung zugewiesen und muss so viele Elemente aufweisen, wie durch das attribut SQL_ATTR_ROW_ARRAY_SIZE-Anweisung angegeben werden. Die Werte im Array werden von SQLBulkOperations, SQLFetch, SQLFetchScroll und SQLSetPos festgelegt. Die Werte beschreiben den Status der Zeile und ob sich dieser Status seit dem letzten Abruf geändert hat.
Zeilenstatusarraywert | Beschreibung |
---|---|
SQL_ROW_SUCCESS | Die Zeile wurde erfolgreich abgerufen und hat sich seit dem letzten Abruf nicht geändert. |
SQL_ROW_SUCCESS_WITH_INFO | Die Zeile wurde erfolgreich abgerufen und hat sich seit dem letzten Abruf nicht geändert. Es wurde jedoch eine Warnung zu der Zeile zurückgegeben. |
SQL_ROW_ERROR | Fehler beim Abrufen der Zeile. |
SQL_ROW_UPDATED | Die Zeile wurde erfolgreich abgerufen und wurde seit dem letzten Abruf aktualisiert. Wenn die Zeile von SQLSetPos erneut abgerufen oder aktualisiert wird, wird der Status in den neuen Status geändert. Einige Treiber können keine Änderungen an Daten erkennen und können daher diesen Wert nicht zurückgeben. Um zu ermitteln, ob ein Treiber Updates für zurückgerufene Zeilen erkennen kann, ruft eine Anwendung SQLGetInfo mit der Option SQL_ROW_UPDATES auf. |
SQL_ROW_DELETED | Die Zeile wurde seit dem letzten Abruf gelöscht. |
SQL_ROW_ADDED | Die Zeile wurde von SQLBulkOperations eingefügt. Wenn die Zeile erneut abgerufen oder von SQLSetPos aktualisiert wird, wird der Status SQL_ROW_SUCCESS. Dieser Wert wird nicht von SQLFetch oder SQLFetchScroll festgelegt. |
SQL_ROW_NOROW | Das Rowset überlappt das Ende des Resultsets, und es wurde keine Zeile zurückgegeben, die diesem Element des Zeilenstatusarrays entspricht. |