Compartilhar via


O conjunto de registros (ODBC)

Este tópico se aplica às classes MFC ODBC.

A CRecordset objeto representa um conjunto de registros selecionados de uma fonte de dados. Os registros podem ser de:

  • Uma tabela.

  • Uma consulta.

  • Um procedimento armazenado que acessa uma ou mais tabelas.

Um exemplo de um conjunto de registros baseado em uma tabela é a "todos os clientes", que acessa uma tabela do cliente. Um exemplo de uma consulta é "todas as faturas para Joe Smith". Um exemplo de um conjunto de registros com base em um procedimento armazenado (às vezes chamado de uma consulta predefinida) é "todas as contas de inadimplente" que chama um procedimento armazenado no banco de dados back-end. Um conjunto de registros pode ingressar em dois ou mais tabelas da mesma fonte de dados, mas não as tabelas de diferentes fontes de dados.

ObservaçãoObservação

Para obter informações sobre a derivação de classes de conjunto de registros com os assistentes, consulte a adição de um consumidor ODBC do MFC e suporte a banco de dados, o MFC Application Wizard.

ObservaçãoObservação

Alguns drivers ODBC oferecem suporte a modos de exibição do banco de dados. Um modo de exibição nesse sentido é uma consulta criada originalmente com o SQL CREATE VIEW instrução. Os assistentes no momento não oferecem suporte a modos de exibição, mas é possível codificar esse suporte.

Conjunto de registros recursos

Todos os objetos recordset compartilham os seguintes recursos:

  • Se a fonte de dados não é somente leitura, você pode especificar que o seu conjunto de registros seja atualizável, appendable, ou somente leitura. Se o conjunto de registros é atualizável, você pode escolher otimista ou pessimista bloqueio métodos, fornecido o driver fornece suporte a bloqueio apropriado. Se a fonte de dados é somente leitura, o conjunto de registros será somente leitura.

  • Você pode chamar membro funções para rolagem por meio de registros selecionados.

  • Você pode filtro os registros para restringir quais registros são selecionados dos que estão disponíveis.

  • Você pode classificação os registros em ordem, crescente ou decrescente, com base em uma ou mais colunas.

  • Você pode parametrizar o conjunto de registros para qualificar a seleção do conjunto de registros em tempo de execução.

Snapshots e Dynasets

Há dois tipos principais de conjuntos de registros: snapshots e dynasets. Ambos são suportados pela classe CRecordset. Cada um deles compartilha as características comuns de todos os conjuntos de registros, mas cada um também estende a funcionalidade comum em sua própria maneira especializada. Snapshots oferecem uma exibição estática dos dados e são úteis para relatórios e outras situações em que você deseja uma exibição dos dados como ele existia em um determinado momento. Dynasets são úteis quando você deseja que as atualizações feitas por outros usuários fiquem visíveis no conjunto de registros sem ter que repetir a consulta ou atualizar o conjunto de registros. Snapshots e dynasets pode ser atualizável ou somente leitura. Para refletir registros adicionados ou excluídos por outros usuários, chamada CRecordset::Requery.

CRecordsettambém permite que outros dois tipos de conjuntos de registros: conjuntos de registros dinâmicos e conjuntos de registros somente de encaminhamento. Conjuntos de registros dinâmicos são semelhantes aos dynasets; No entanto, os conjuntos de registros dinâmicos refletem quaisquer registros adicionados ou excluídos sem chamada CRecordset::Requery. Por esse motivo, os conjuntos de registros dinâmicos são geralmente caros em relação ao tempo de processamento no DBMS e muitos drivers ODBC não oferecem suporte a eles. Em contraste, os conjuntos de registros somente de encaminhamento fornecem o método mais eficiente de acesso a dados para os conjuntos de registros que não exigem atualizações ou para trás. Por exemplo, você pode usar um conjunto de registros somente de encaminhamento para migrar dados de uma fonte de dados para outro, onde você só precisará percorrer os dados no sentido progressivo. Para usar um conjunto de registros somente de encaminhamento, faça o seguinte:

  • A opção de passar CRecordset::forwardOnly como o nOpenType parâmetro da Abrir a função de membro.

  • Especificar CRecordset::readOnly na dwOptions parâmetro do Abrir.

    ObservaçãoObservação

    Para obter informações sobre requisitos de driver ODBC para o suporte de dynaset, consulte ODBC. 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.

Conjuntos de registros

Para cada tabela distinta, exibição ou procedimento armazenado que você deseja acessar, você geralmente define uma classe derivada de CRecordset. (A exceção é uma associação de banco de dados, no qual um conjunto de registros representa colunas de tabelas de duas ou mais). Quando você derivar uma classe de conjunto de registros, você ativar o mecanismo de troca (RFX) do campo de registro ou o mecanismo de exchange (RFX em massa) do campo de registro em massa, que são semelhantes para o mecanismo de troca (DDX) de dados de caixa de diálogo. RFX e RFX de massa simplificam a transferência de dados da fonte de dados em um conjunto de registros; Além disso RFX transfere dados de seu conjunto de registros à fonte de dados. Para obter mais informações, consulte Exchange de campo do registro (RFX) e Recordset: Buscar registros em massa (ODBC).

Um objeto recordset fornece acesso a todos os registros selecionados. Você percorre vários registros selecionados usando CRecordset funções de membro, como MoveNext e MovePrev. Ao mesmo tempo, um objeto recordset representa apenas um dos registros selecionados, o registro atual. Você pode examinar os campos do registro atual, Declarando variáveis de membro da classe que correspondem às colunas da tabela ou os registros resultantes da consulta a banco de dados do conjunto de registros. Para obter informações sobre membros de dados do conjunto de registros, consulte Recordset: A arquitetura (ODBC).

Os tópicos a seguir explicam os detalhes do uso de objetos recordset. Os tópicos estão listados em categorias funcionais e de uma ordem de procurar natural para permitir leituras seqüenciais.

Tópicos sobre a mecânica de abrir, ler e conjuntos de registros de fechamento.

Tópicos sobre a mecânica da modificação de conjuntos de registros

Tópicos sobre um pouco mais as técnicas avançadas

Tópicos sobre o funcionam dos conjuntos de registros

Consulte também

Tarefas

Adicionando um consumidor ODBC do MFC

Conceitos

Open Database Connectivity (ODBC)

Transação (ODBC)