行の状態の配列

SQLFetchSQLFetchScroll は、データに加えて、行セット内の各行の状態を示す配列を返すことができます。 この配列は、SQL_ATTR_ROW_STATUS_PTR ステートメント属性を使用して指定されます。 この配列はアプリケーションによって割り当てられ、SQL_ATTR_ROW_ARRAY_SIZE ステートメント属性で指定された要素と同じ数を持つ必要があります。 配列内の値は、SQLBulkOperationsSQLFetchSQLFetchScroll、および SQLSetPos によって設定されます。その値は、行の状態と、最後にフェッチされてから行の状態が変更されたかどうかを示します。

行の状態の配列値 説明
SQL_ROW_SUCCESS 行は正常にフェッチされ、最後にフェッチされてから変更されていません。
SQL_ROW_SUCCESS_WITH_INFO 行は正常にフェッチされ、最後にフェッチされてから変更されていません。 ただし、行に関する警告が返されました。
SQL_ROW_ERROR 行をフェッチ中にエラーが発生しました。
SQL_ROW_UPDATED 行は正常にフェッチされ、最後にフェッチされてから更新されています。 行が再度フェッチされるか、SQLSetPos によって更新された場合、その状態は新しい状態に変更されます。

一部のドライバーはデータの変更を検出できないため、この値を返すことができません。 ドライバーが再フェッチされた行の更新を検出できるかどうかを判断するには、アプリケーションで、SQL_ROW_UPDATES オプションを使用して SQLGetInfo を呼び出します。
SQL_ROW_DELETED 行は最後にフェッチされてから削除されています。
SQL_ROW_ADDED 行は SQLBulkOperations によって挿入されました。 行が再度フェッチされるか、SQLSetPos によって更新された場合、その状態は SQL_ROW_SUCCESS となります。

この値は、SQLFetchSQLFetchScroll によって設定されません。
SQL_ROW_NOROW 行セットは結果セットの末尾に重なり、行の状態配列のこの要素に対応する行は返されませんでした。