Apêndice F: Biblioteca de Cursores ODBC

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 ODBC (Odbccr32.dll) suporta cursores roláveis em bloco para qualquer driver que cumpra o nível de conformidade da API de Nível 1 e que possa ser redistribuído por desenvolvedores com suas aplicações ou drivers. A biblioteca de cursores também suporta instruções posicionadas de atualização e exclusão para conjuntos de resultados gerados pelas instruções SELECT . Embora suporte apenas cursores estáticos e apenas para frente, a biblioteca de cursores atende às necessidades de muitas aplicações. Além disso, pode oferecer bom desempenho, especialmente para conjuntos de resultados de pequeno a médio porte, e para aplicações que não possuem bom suporte a cursores.

A biblioteca de cursores é uma biblioteca de enlace dinâmico (DLL) que reside entre o Gerenciador de Drivers e o driver. Quando um aplicativo chama uma função, o Gerenciador de Drivers chama a função na biblioteca de cursores, que ou executa a função ou a chama no driver especificado. Para uma dada conexão, um aplicativo especifica se a biblioteca de cursores é sempre usada, usada se o driver não suporta cursores roláveis, ou nunca foi usada.

A biblioteca de cursores aparece como um driver para o Gerenciador de Drivers. Se a biblioteca de cursores estiver entre o Gerenciador de Drivers e um driver ODBC 2.x , a biblioteca de cursores aparece como um driver ODBC 2.x . Se a biblioteca de cursores estiver entre o Gerenciador de Drivers e um driver ODBC 3.x , a biblioteca de cursores aparece como um driver ODBC 3.x . O comportamento exibido pela biblioteca de cursores depende da versão do driver com a qual está trabalhando, com exceção dos deslocamentos de vinculação, que são suportados tanto para drivers ODBC 2.x quanto ODBC 3.x .

Para implementar cursores de bloco em SQLFetch e SQLFetchScroll, a biblioteca de cursores chama repetidamente SQLFetch no driver. Para implementar a rolagem, ele armazena em cache os dados recuperados na memória e nos arquivos de disco. Quando um aplicativo solicita um novo conjunto de linhas, a biblioteca de cursores o recupera conforme necessário do driver ou do cache.

Para implementar instruções posicionadas update e delete, a biblioteca de cursores constrói uma UPDATE instrução ou DELETE com uma cláusula WHERE que especifica o valor em cache de cada coluna limitada na linha. Quando executa uma instrução positioned update, a biblioteca de cursores atualiza seu cache a partir dos valores nos buffers de rowset.

Para mais informações sobre a biblioteca de cursores ODBC, veja as seguintes seções deste apêndice: