Dynaset
Este tópico descreve dynasets e discute os disponibilidade.
Observação: |
---|
Este tópico se aplica a classes MFC ODBC, incluindo CRecordset.Para obter informações sobre dynasets nas classes DAO, consulte CDaoRecordset.Com o DAO, você pode em em aberto conjuntos de registros do tipo dynaset. |
Um dynaset é um conjunto de registros com propriedades dinâmicas.Durante sua existência, um objeto de conjunto de registros no modo dynaset (normalmente chamado de um dynaset) permanecerá sincronizado com a fonte de dados da seguinte maneira.Em um ambiente multiusuário, outros usuários podem edição ou excluir registros que estão em seu tipo dynaset ou adicionar registros à tabela do tipo dynaset representa.Registros de seu aplicativo adiciona ou exclui o conjunto de registros são refletidos no seu tipo dynaset.Registros que outros usuários adicionarem à tabela não serão refletidos no seu tipo dynaset até que você recompilar o dynaset chamando seus Repetir a consultafunção de membro .Quando outros usuários excluírem registros, o código do MFC ignore as exclusões de conjunto de registros.sistema autônomo alterações de edição de outros usuários registros existentes são refletidas no seu tipo dynaset, assim que você rolar para o registro afetado.
Da mesma forma, as edições feitas em registros em um dynaset são refletidas no dynasets em uso por outros usuários.Adicionar registros não são refletidos no dynasets de outros usuários até que eles repetir consulta seus dynasets.Excluir registros são marcados sistema autônomo "excluído" no conjunto de registros de outros usuários.Se você tiver várias conexões com o mesmo banco de dados (várias CDatabase objetos), conjuntos de registros associados a essas conexões possuem o mesmo status que sistema autônomo conjuntos de registros de outros usuários.
Dynasets são mais valiosos quando sistema autônomo dados devem ser dinâmicos (por exemplo) sistema autônomo em um sistema de reserva de viagens.
Observação: |
---|
Para usar dynasets, você deve ter um driver ODBC para sua fonte de dados oferece suporte para dynasets e o ODBC biblioteca de cursores deve ser carregado.Para obter mais informações, consulte Disponibilidade de Dynasets. |
Para especificar um conjunto de registros é um dynaset, passar CRecordset::dynaset sistema autônomo o primeiro parâmetro para o em aberto função de membro do objeto do conjunto de registros.
Observação: |
---|
Para dynasets atualizável, seu driver de ODBC deve suporte seja posicionado instruções de atualização ou a :: SQLSetPos Função de ODBC API.Se houver suporte para ambos, o MFC usa :: SQLSetPos para maior eficiência. |
Disponibilidade de Dynasets
Classes de banco de dados MFC suportam dynasets se os seguintes requisitos forem atendidos:
A DLL do ODBC biblioteca de cursores não deve estar em uso para esta fonte de dados.
Se o cursor biblioteca for usada, ele mascara algumas funcionalidades do driver ODBC subjacente que é necessário para suporte a tipo dynaset.Se você quiser usar dynsistema autônomoets (e seu h de driver ODBC sistema autônomo a funcionalidade necessária para dynsistema autônomoets, sistema autônomo descrito no restante desta seção), você pode fazer com que o MFC não carregar a biblioteca de cursores, quando você cria um CDatabase objeto. Para obter mais informações, consulte ODBC and the OpenEx or em aberto função de membro de classe CDatabase.
Na terminologia do ODBC, dynasets e snapshots são denominados cursores.Um cursor é um mecanismo usado para manter o controle de sua posição em um conjunto de registros.Para obter mais informações sobre cursores, consulte Referência do programador de ODBC.
O driver ODBC para sua fonte de dados deve oferecer suporte a cursores orientados por conjunto de chaves.
Cursores orientados por conjunto de chaves gerenciar dados de uma tabela, obter e armazenar um conjunto de chaves.As chaves são usadas para obter os dados corrente da tabela quando o usuário rola até um determinado registro.Para determinar se o driver fornece esse suporte, chame o :: SQLGetInfo Função de ODBC API com o SQL_SCROLL_OPTIONS parâmetro.
Se você tentar em em aberto um dynaset sem suporte do conjunto de chaves, você obterá um CDBException com o valor de código de retorno AFX_SQL_ERROR_DYNASET_NOT_SUPPORTED.
O driver ODBC para sua fonte de dados deve oferecer suporte a busca estendida.
Buscando estendida é a capacidade de voltar, bem sistema autônomo encaminhar sobre sistema autônomo registros resultantes da consulta SQL.Para determinar se o driver oferece suporte a essa capacidade, telefonar o :: SQLGetFunctions Função de ODBC API com o SQL_API_SQLEXTENDEDFETCH parâmetro.
Se você desejar dynasets atualizável (ou snapshots, no caso), seu driver de ODBC também deve suportar qualquer o :: SQLSetPos Função da API do ODBC ou atualizações posicionadas.The :: SQLSetPos função permite que a MFC atualizar a fonte de dados sem enviar instruções SQL.Se esse suporte está disponível, o MFC a usará em preferência a fazer atualizações usando o SQL.Para determinar se seu driver suporta :: SQLSetPos, telefonar :: SQLGetInfo with the SQL_POS_OPERATIONS parâmetro.
Posicionado atualizações usar sintaxe SQL (do formulário ONDE corrente DE<cursorname>) para identificar uma determinada linha na tabela na fonte de dados.Para determinar se o driver oferece suporte a atualizações posicionadas, chame :: SQLGetInfo with the SQL_POSITIONED_STATEMENTS parâmetro.
Em geral, dynasets MFC (mas não somente de encaminhar conjuntos de registros) requerem um driver ODBC com conformidade de API de nível 2.Se o driver para sua fonte de dados estiver em conformidade com o conjunto de APIs de nível 1, você ainda pode usar instantâneos atualizáveis tanto somente leitura e conjuntos de registros somente de encaminhar, mas não dynasets.No entanto, um driver de nível 1 pode oferecer suporte a dynasets se oferecer suporte estendido buscando e cursores orientados por conjunto de chaves.Para obter mais informações sobre os níveis de conformidade com ODBC, consulte ODBC.
Observação: |
---|
Se você quiser usar snapshots e dynasets, você deve baseá-los em duas diferentes CDatabase objetos (duas conexões diferentes). |
Ao contrário de instantâneos, que usa armazenamento intermediário mantido pela biblioteca de cursores ODBC, dynsistema autônomoets buscar um registro diretamente de fonte de dados sistema autônomo logo sistema autônomo você rolar a ele.Isso mantém os registros selecionados originalmente por dynaset sincronizada com a fonte de dados.
Para obter uma lista de drivers ODBC incluído nesta versão do Visual C++ e informações sobre como obter drivers adicionais, consulte Lista de drivers ODBC.