ODBC: A biblioteca de cursores ODBC
Este tópico descreve a biblioteca de cursores ODBC e explica como usá-lo.Para obter mais informações, consulte:
biblioteca de cursores e drivers de ODBC de nível 1
Atualizações posicionadas e colunas de carimbo de data/hora
Usando a biblioteca de cursores
O ODBC biblioteca de cursores é uma biblioteca de vínculo dinâmico (DLL) que reside entre o Gerenciador de driver de ODBC e o driver.Em termos ODBC, um driver mantém um cursor para manter o controle de sua posição no conjunto de registros.O cursor marca a posição no conjunto de registros para o qual você já percorreu — o registro corrente.
biblioteca de cursores e drivers de ODBC de nível 1
A biblioteca de cursores ODBC fornece drivers de nível 1 os novos recursos a seguir:
Avançar e retroceder de rolagem.Drivers de nível 2 não são necessário o biblioteca de cursores porque eles já estão roláveis.
Suporte para snapshots.O biblioteca de cursores gerencia um buffer que contém registros do instantâneo.Esse buffer reflete o seu programa exclusões e modificações feitas registros mas não as adições, exclusões ou edições de outros usuários.Portanto, o instantâneo é apenas sistema autônomo atual sistema autônomo buffer biblioteca de cursores'sistema autônomo.O buffer também não reflete suas própria adições até telefonar repetir consulta.Não use Dynasets o biblioteca de cursores.
O biblioteca de cursores oferece snapshots (Cursores estático) mesmo se eles não são normalmente suportados pelo seu driver.Se seu driver já oferece suporte a Cursores estático, você não precisa carregar o biblioteca de cursores para obter suporte instantâneo.Se você usar o biblioteca de cursores, você pode usar apenas snapshots e conjuntos de registros somente de encaminhar.Se seu driver suporta dynasets (KEYSET_DRIVEN cursores) e deseja usá-los, você não deve usar o biblioteca de cursores.Se você quiser usar snapshots e dynasets, você deve baseá-los em duas diferentes CDatabase a menos que seu driver suporta ambos os objetos (duas conexões diferentes).
Atualizações posicionadas e colunas de carimbo de data/hora
Observação: |
---|
Fontes de dados ODBC são acessíveis através das classes MFC ODBC, sistema autônomo descrito neste tópico ou por meio de classes MFC Data acesso objeto (DAO). |
Observação: |
---|
Se o driver de ODBC oferecer suporte SQLSetPos, que usa a MFC se estiver disponível, este tópico não se aplica a você. |
A maioria dos drivers de nível 1 não dão suporte a atualizações posicionadas.Esses drivers dependem do cursor biblioteca para emular os recursos de drivers de nível 2 em relação a isso.A biblioteca de cursores emula o suporte para a atualização posicionado, fazendo uma atualização pesquisada nos campos inalterados.
Em alguns casos, um conjunto de registros pode conter uma coluna de carimbo de data/hora sistema autônomo um desses campos inalterados.Dois problemas surgem usando conjuntos de registros do MFC com tabelas contendo colunas de carimbo de data/hora.
O primeiro problema preocupações com instantâneos atualizáveis em tabelas com colunas de carimbo de data/hora.Se a tabela ao qual o instantâneo está limite contém uma coluna de carimbo de data/hora, você deve telefonar Repetir a consulta after you telefonar edição and Atualização.Caso contrário, você não poderá edição o mesmo registro novamente.Quando você telefonar edição and then Atualização, o registro foi criado para a fonte de dados e a coluna de carimbo de data/hora é atualizada.Se você não chamar Repetir a consulta, o valor de carimbo de data/hora para o registro em seu instantâneo não corresponde mais ao carimbo de hora correspondente na fonte de dados.Quando você tenta atualizar o registro novamente, a fonte de dados pode não permitir a atualização devido à incompatibilidade de.
A segunda questão está relacionada à limitações da classe CTime quando usado com o RFX_Date função transferência informações de data e time de ou para uma tabela. Processando o CTime objeto impõe uma sobrecarga na forma de processamento extra intermediário durante a transferência de dados. O intervalo de datas de CTime objetos também podem ser muito limitação para alguns aplicativos. Uma nova versão do RFX_Date função pega um ODBC TIMESTAMP_STRUCT parâmetro em vez de um CTime objeto. Para obter mais informações, consulte RFX_Date em Macros e globais in the Referência da MFC.
Usando a biblioteca de cursores
Quando você se conectar à fonte de dados — chamando CDatabase::OpenEx or CDatabase::em aberto — você pode especificar se deseja usar a biblioteca de cursores para a fonte de dados.Se você criando instantâneos que fonte de dados, especifique o CDatabase::useCursorLib opção de a dwOptions parâmetro para OpenEx ou especifique TRUE for the bUseCursorLib parâmetro em aberto (o valor padrão é TRUE).Se seu driver ODBC suporta dynasets e você deseja em em aberto dynasets na fonte de dados, não use a biblioteca de cursores (Ele mascara algumas funcionalidades de driver necessárias para dynasets).Nesse caso, não especifique CDatabase::useCursorLib in OpenEx ou especifique FALSE for the bUseCursorLib parâmetro em aberto.