Compartilhar via


Como processar resultados (ODBC)

Para processar resultados

  1. Recupere informações do conjunto de resultados.

  2. Se forem usadas colunas associadas, para cada coluna à qual deseja associar, chame SQLBindCol para associar um buffer de programa à coluna.

  3. Para cada linha no conjunto de resultados:

    • Chame SQLFetch para acessar a próxima linha.

    • Se forem usadas colunas associadas, use os dados disponíveis agora nos buffers de coluna associados.

    • Se forem usadas colunas desassociadas, chame SQLGetData uma ou mais vezes para obter os dados dessas colunas depois da última coluna associada. As chamadas a SQLGetData deveriam estar em ordem crescente de número de coluna.

    • Chame SQLGetData várias vezes para obter dados de uma coluna de textos ou imagens.

  4. Quando sinalizar o término do conjunto de resultados retornando SQL_NO_DATA, chame SQLMoreResults para determinar se há outro conjunto de resultados disponível.

    • Se SQL_SUCCESS for retornado, outro conjunto de resultados estará disponível.

    • Se SQL_NO_DATA for retornado, nenhum outro conjunto de resultados estará disponível.

    • Se SQL_SUCCESS_WITH_INFO ou SQL_ERROR for retornado, chame SQLGetDiagRec para determinar se a saída de uma instrução PRINT ou RAISERROR estará disponível.

      Se parâmetros de instrução associados forem usados para parâmetros de saída ou o valor retornado de um procedimento armazenado, use os dados disponíveis agora nos buffers de parâmetro associados. Além disso, quando são usados parâmetros associados, cada chamada para SQLExecute ou SQLExecDirect terá executado a instrução SQL por S vezes, onde S é o número de elementos na matriz de parâmetros associados. Isso significa que haverá S conjuntos de resultados a ser processados, onde cada conjunto consiste em todos os conjuntos de resultados, parâmetros de saída e códigos de retorno normalmente retornados por uma única execução da instrução SQL.

    ObservaçãoObservação

    Quando um conjunto de resultados contém linhas computadas, cada linha computada é disponibilizada como um conjunto de resultados separado. Esses conjuntos de resultados computados são intercalados nas linhas normais e dividem as linhas normais em vários conjuntos de resultados.

  5. Outra opção é chamar SQLFreeStmt com SQL_UNBIND para liberar qualquer buffer de coluna associado.

  6. Se outro conjunto de resultados estiver disponível, vá para a Etapa 1.

ObservaçãoObservação

Para cancelar o processamento de um conjunto de resultados antes que SQLFetch retorne SQL_NO_DATA, chame SQLCloseCursor.