Compartilhar via


SQLGetData (Biblioteca de cursores)

Importante

Esse recurso será removido em uma versão futura do Windows. Evite usar esse recurso em um novo trabalho de desenvolvimento e planeje modificar aplicativos que atualmente usam esse recurso. A Microsoft recomenda usar a funcionalidade de cursor do driver.

Este tópico discute o uso da função SQLGetData na biblioteca de cursores. Para obter informações gerais sobre SQLGetData, consulte Função SQLGetData.

A biblioteca de cursores implementa SQLGetData construindo primeiro uma instrução SELECT com uma cláusula WHERE que enumera os valores armazenados em seu cache para cada coluna associada na linha atual. Em seguida, ele executa a instrução SELECT para reelecionar a linha e chama SQLGetData no driver para recuperar os dados da fonte de dados (em vez do cache).

Cuidado

A cláusula WHERE construída pela biblioteca de cursores para identificar a linha atual pode falhar ao identificar quaisquer linhas, identificar uma linha diferente ou identificar mais de uma linha. Para obter mais informações, consulte Construindo instruções pesquisadas.

Se o atributo de instrução SQL_ATTR_USE_BOOKMARKS estiver definido como SQL_UB_VARIABLE, SQLGetData poderá ser chamado na coluna 0 para retornar dados de indicador.

As chamadas para SQLGetData estão sujeitas às seguintes restrições:

  • O SQLGetData não pode ser chamado para cursores somente encaminhamento.

  • SQLGetData só pode ser chamado quando as seguintes condições são atendidas: uma instrução SELECT gerou o conjunto de resultados; a instrução SELECT não continha uma junção, uma cláusula UNION ou uma cláusula GROUP BY ; e todas as colunas que usaram um alias ou expressão na lista de seleção não foram associadas a SQLBindCol.

  • Se o driver der suporte a apenas uma instrução ativa, a biblioteca de cursores buscará o restante do conjunto de resultados antes de executar a instrução SELECT e chamar SQLGetData.