Compartilhar via


Matriz de status da linha

Além dos dados, SQLFetch e SQLFetchScroll podem retornar uma matriz que fornece o status de cada linha no conjunto de linhas. Essa matriz é especificada por meio do atributo da instrução SQL_ATTR_ROW_STATUS_PTR. Essa matriz é alocada pelo aplicativo e deve ter tantos elementos quantos os especificados pelo atributo da instrução SQL_ATTR_ROW_ARRAY_SIZE. Os valores na matriz são definidos por SQLBulkOperations, SQLFetch, SQLFetchScroll e SQLSetPos. Os valores descrevem o status da linha e se esse status foi alterado desde a última vez em que foi efetuado fetch.

Valor da matriz de status da linha Descrição
SQL_ROW_SUCCESS Foi efetuado fetch da linha com sucesso e ela não foi alterada desde a última vez em que foi efetuado fetch.
SQL_ROW_SUCCESS_WITH_INFO Foi efetuado fetch da linha com sucesso e ela não foi alterada desde a última vez em que foi efetuado fetch. Porém, foi retornado um aviso sobre a fila.
SQL_ROW_ERROR Ocorreu um erro ao efetuar fetch da linha.
SQL_ROW_UPDATED Foi efetuado fetch da linha com sucesso e ela foi atualizada desde a última vez em que foi efetuado fetch. Se for efetuado um novo fetch da linha ou se ela for atualizada pelo SQLSetPos, seu status será mudará o novo status.

Alguns drivers não conseguem detectar alterações nos dados, portanto, não podem retornar esse valor. Para determinar se um driver pode detectar atualizações para linhas para as quais foi efetuado um novo fetch, um aplicativo chama SQLGetInfo com a opção SQL_ROW_UPDATES.
SQL_ROW_DELETED A linha foi excluída desde a última vez em que foi efetuado fetch.
SQL_ROW_ADDED SQLBulkOperations inseriu a linha. Se for efetuado fetch da linha novamente ou se ela for atualizada pelo SQLSetPos, seu status será SQL_ROW_SUCCESS.

Esse valor não é definido por SQLFetch nem por SQLFetchScroll.
SQL_ROW_NOROW O conjunto de linhas se sobrepôs ao final do conjunto de resultados e não foi retornada nenhuma linha correspondente a esse elemento da matriz de status da linha.