Partilhar via


Dados de coluna

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.

A biblioteca de cursores cria um buffer no cache para cada buffer de dados associado ao conjunto de resultados com SQLBindCol. Ele usa os valores nesses buffers para construir uma cláusula WHERE quando emula uma instrução de atualização ou exclusão posicionada. Ele atualiza esses buffers dos buffers de conjunto de linhas quando busca dados da fonte de dados e quando executa instruções de atualização posicionadas.

Quando a biblioteca de cursores atualiza seu cache dos buffers de conjunto de linhas, ela transfere os dados de acordo com o tipo de dados C especificado em SQLBindCol. Por exemplo, se o tipo de dados C de um buffer de conjunto de linhas for SQL_C_SLONG, a biblioteca de cursores transferirá quatro bytes de dados; se for SQL_C_CHAR e BufferLength for 10, a biblioteca de cursores transferirá 10 bytes de dados. A biblioteca de cursores não executa nenhuma verificação de tipo ou conversões nos dados que transfere.

Observação

A biblioteca de cursores não atualizará seu cache para uma coluna se *StrLen_or_IndPtr no buffer de conjunto de linhas correspondente for SQL_DATA_AT_EXEC ou o resultado da macro SQL_LEN_DATA_AT_EXEC.

Quando atualiza uma coluna, uma fonte de dados exibe dados de caracteres de comprimento fixo e dados binários de comprimento fixo de zero pads, conforme necessário. Por exemplo, uma fonte de dados armazena "Smith" em uma coluna CHAR(10) como "Smith ". A biblioteca de cursores não contém dados em branco ou de bloco zero nos buffers de conjunto de linhas quando copia esses dados para seu cache depois de executar uma instrução de atualização posicionada. Portanto, se um aplicativo exigir que os valores no cache da biblioteca de cursores sejam adicionados em branco ou sem adição, ele deverá armazenar em branco ou zero-pad os valores nos buffers de conjunto de linhas antes de executar uma instrução de atualização posicionada.