Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este tópico se aplica às classes ODBC do MFC.
Um objeto CRecordset representa um conjunto de registros selecionados de uma fonte de dados. Os registos podem ser provenientes 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 é "todos os clientes", que acessa uma tabela Customer. Um exemplo de consulta é "todas as faturas para Joe Smith". Um exemplo de um conjunto de registros baseado em um procedimento armazenado (às vezes chamado de consulta predefinida) é "todas as contas inadimplentes", que invoca um procedimento armazenado no banco de dados back-end. Um conjunto de registros pode unir duas ou mais tabelas da mesma fonte de dados, mas não tabelas de fontes de dados diferentes.
Observação
Alguns drivers ODBC suportam exibições do banco de dados. Uma vista, neste sentido, é uma consulta originalmente criada com a instrução SQL CREATE VIEW.
Recursos do Recordset
Todos os objetos de conjunto de registros compartilham os seguintes recursos:
Se a fonte de dados não for somente leitura, você poderá especificar que seu conjunto de registros seja atualizável, anexável ou somente leitura. Se o conjunto de registros for atualizável, você pode escolher métodos de bloqueio pessimistas ou otimistas, desde que o driver forneça o suporte de bloqueio apropriado. Se a fonte de dados for de apenas leitura, o registo será de apenas leitura.
Você pode chamar funções de membro para percorrer os registros selecionados.
Você pode filtrar os registros para restringir quais registros são selecionados entre os disponíveis.
Você pode classificar 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.
Instantâneos e Dynasets
Existem dois tipos principais de conjuntos de registros: instantâneos e dynasets. Ambos são suportados pela classe CRecordset. Cada um compartilha as características comuns de todos os conjuntos de registros, mas cada um também estende a funcionalidade comum de sua própria maneira especializada. Os instantâneos fornecem uma visã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 eles existiam em um determinado momento. Os dynasets são úteis quando você deseja que as atualizações feitas por outros usuários fiquem visíveis no conjunto de registros sem precisar consultar ou atualizar novamente o conjunto de registros. Snapshots e dynasets podem ser atualizáveis ou somente leitura. Para refletir os registros adicionados ou excluídos por outros usuários, chame CRecordset::Requery.
CRecordset também permite dois outros tipos de conjuntos de registos: conjuntos de registos dinâmicos e conjuntos de registos de encaminhamento único. Os conjuntos de registos dinâmicos são semelhantes aos dynasets; no entanto, os conjuntos de registros dinâmicos refletem todos os registros adicionados ou excluídos sem chamar 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 os suportam. Por outro lado, os conjuntos de registros somente para frente fornecem o método mais eficiente de acesso a dados para conjuntos de registros que não exigem atualizações ou rolagem para trás. Por exemplo, pode-se usar um conjunto de registos de leitura sequencial para migrar dados de uma fonte de dados para outra, onde só é necessário percorrer os dados numa direção sequencial. Para usar um conjunto de registos apenas de avanço, deve-se fazer o seguinte:
Passe a opção
CRecordset::forwardOnlycomo o parâmetro nOpenType da função Open member.Especifique
CRecordset::readOnlyno parâmetro dwOptions deOpen.Observação
Para obter informações sobre os requisitos de driver ODBC para suporte a dynaset, consulte ODBC. Para obter uma lista de drivers ODBC incluídos nesta versão do Visual C++ e para obter informações sobre como obter drivers adicionais, consulte Lista de drivers ODBC.
Os seus registos
Para cada tabela, exibição ou procedimento armazenado distinto que você deseja acessar, normalmente você define uma classe derivada de CRecordset. (A exceção é uma associação de banco de dados, na qual um conjunto de registros representa colunas de duas ou mais tabelas.) Ao derivar uma classe de conjunto de registros, você habilita o mecanismo de troca de campo de registro (RFX) ou o mecanismo de troca de campo de registro em massa (RFX em massa), que são semelhantes ao mecanismo de troca de dados de diálogo (DDX). RFX e RFX em massa simplificam a transferência de dados da fonte de dados para o seu conjunto de registros; Além disso, a RFX transfere dados do seu conjunto de registros para a fonte de dados. Para obter mais informações, consulte Record Field Exchange (RFX) e Recordset: Fetching Records in Bulk (ODBC).
Um objeto de conjunto de registros dá acesso a todos os registros selecionados. Você percorre os 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 do conjunto de registros que correspondem às colunas da tabela ou dos registros resultantes da consulta ao banco de dados. Para obter informações sobre membros de dados do conjunto de registros, consulte Recordset: Architecture (ODBC).
Os tópicos a seguir explicam os detalhes do uso de objetos de conjunto de registros. Os tópicos são listados em categorias funcionais e uma ordem de navegação natural para permitir a leitura sequencial.
Tópicos sobre a mecânica de abrir, ler e fechar conjuntos de registros
Conjunto de registros: Declarando uma classe para uma tabela (ODBC)
Conjunto de registros: Criando e fechando conjuntos de registros (ODBC)
Conjunto de registros: Parametrizando um conjunto de registros (ODBC)
Tópicos sobre a mecânica da modificação de conjuntos de registros
Conjunto de registros: Adicionando, atualizando e excluindo registros (ODBC)
Conjunto de registros: Consultando novamente um conjunto de registros (ODBC)
Tópicos sobre técnicas um pouco mais avançadas
Conjunto de registros: Declarando uma classe para uma consulta predefinida (ODBC)
Conjunto de registros: ODBC (Dynamically Binding Data Columns)
Conjunto de registros: Trabalhando com itens de dados grandes (ODBC)
Conjunto de registros: Obtendo somas e outros resultados agregados (ODBC)
Tópicos sobre como os conjuntos de registros funcionam
Conjunto de registros: Como os conjuntos de registros selecionam registros (ODBC)
Conjunto de registros: Como os conjuntos de registros atualizam registros (ODBC)
Ver também
Open Database Connectivity (ODBC)
MFC ODBC Consumo
Transação (ODBC)