Partilhar via


Recordset: Como conjuntos de registros selecionar registros (ODBC)

Este tópico se aplica a classes MFC ODBC.

Este tópico explica:

  • Sua função e suas opções de seleção de registros.

  • Como um conjunto de registros constrói sua instrução SQL e seleciona registros.

  • O que você pode fazer para personalizar a seleção.

Conjuntos de registros selecionar registros de uma fonte de dados através de um driver ODBC, enviando instruções de SQL para o driver.O SQL enviado depende de como você pode criar e abre sua classe de conjunto de registros.

As opções de seleção de registros

A tabela a seguir mostra as opções de seleção de registros.

Como e quando pode afetar um conjunto de registros

Quando você

Você pode

Declara sua classe de conjunto de registros com o Add Class Assistente

Especifica qual tabela para selecionar.

Especifique quais colunas incluir.

Consulte Adicionando um consumidor ODBC do MFC.

Conclua sua implementação de classe do conjunto de registros

Substituir funções de membro como OnSetOptions (Avançado) para definir opções específicas do aplicativo ou alterar os padrões.Especifica os membros de dados de parâmetro se desejar que um conjunto de registros com parâmetros.

Construir um objeto recordset (antes de chamar Abrir)

Especificar uma condição de pesquisa (possivelmente composta) para uso em um onde cláusula filtra os registros.Consulte Recordset: filtragem de registros (ODBC).

Especificar uma ordem de classificação para uso em um ORDER BY cláusula classifica os registros.Consulte Recordset: classificar registros (ODBC).

Especifica valores de parâmetro para qualquer parâmetro adicionado à classe.Consulte Recordset: parametrização um conjunto de registros (ODBC).

Executar a consulta do conjunto de registros chamando aberto

Especifica uma seqüência SQL personalizada para substituir a seqüência SQL padrão configurada pelo assistente.Consulte CRecordset::Open na referência de biblioteca de classe e SQL: Personalizando a instrução de SQL do Recordset (ODBC).

Chamar Requery para repetir a consulta de conjunto de registros com os valores mais recentes na fonte de dados

Especifica novos parâmetros, filtrar ou classificar.Consulte Recordset: repetir consulta um conjunto de registros (ODBC).

Como um conjunto de registros constrói sua declaração de SQL

Quando você chamar um objeto recordset Abrir função de membro Abrir constrói uma instrução SQL usando alguns ou todos os seguintes componentes:

  • O lpszSQL parâmetro passado para Abrir.Se não Nulo, este parâmetro especifica uma seqüência SQL personalizada ou parte de um.O framework analisa a seqüência de caracteres.Se a seqüência de caracteres é um SQL Selecionar instrução ou ODBC chamada instrução, a estrutura usa a seqüência de caracteres como declaração de SQL do conjunto de registros.Se a seqüência não começa com "{chamada" ou "SELECT", a estrutura usa fornecido para construir um SQL FROM cláusula.

  • A seqüência retornada por GetDefaultSQL.Por padrão, esse é o nome da tabela especificada para o conjunto de registros no assistente, mas você pode alterar a função retorna.O framework chama GetDefaultSQL — se a seqüência não começa com "SELECT" ou "{chamada", será considerado para ser um nome de tabela é usado para construir uma seqüência SQL.

  • Os campo dados membros do conjunto de registros, que são vinculados a colunas específicas da tabela.A estrutura vincula colunas registrar os endereços desses membros, usando-os como buffers.A estrutura determina a correlação de membros de dados de campo para colunas de tabela do RFX ou chamadas de função RFX em massa no conjunto de registros DoFieldExchange ou DoBulkFieldExchange função de membro.

  • O filtro para o conjunto de registros, se houver, contidos na m_strFilter membro de dados.A estrutura usa essa cadeia de caracteres para construir um SQL onde cláusula.

  • O classificação ordem para o conjunto de registros, se houver, contido no m_strSort membro de dados.A estrutura usa essa cadeia de caracteres para construir um SQL ORDER BY cláusula.

    DicaDica

    Para usar o SQL GROUP BY cláusula (e possivelmente o HAVING cláusula), acrescentar as cláusulas ao final de sua cadeia de caracteres de filtro.

  • Os valores de qualquer membros de dados do parâmetro especificar para a classe.Definir valores de parâmetro antes de chamar Abrir ou Requery.A estrutura vincula os valores de parâmetro para "?" espaços reservados na seqüência de caracteres SQL.Tempo de compilação, você pode especificar a seqüência de caracteres com espaços reservados.Em tempo de execução, a estrutura preenche os detalhes com base nos valores de parâmetro que você passar.

Abrir constrói uma SQL Selecionar declaração desses ingredientes.Consulte Personalizando a seleção de para obter detalhes sobre como a estrutura usa os ingredientes.

Depois de construir a instrução Abrir envia o SQL para o Gerenciador de Driver ODBC (e a biblioteca de Cursor ODBC), se ele estiver na memória que envia para o driver ODBC para o DBMS específico.O driver se comunica com o DBMS para executar a seleção de fonte de dados e extrai o primeiro registro.O framework carrega o registro para os membros de dados de campo do conjunto de registros.

Você pode usar uma combinação dessas técnicas para abrir tabelas e para construir uma consulta baseada em uma join de várias tabelas.Personalização adicional, você pode chamar consultas predefinidas (procedimentos armazenados), selecione colunas não conhecidas em tempo de design de tabela e ligar -los para campos de conjunto de registros ou você podem executar a maioria das tarefas de acesso a dados.Não é possível realizar Personalizando conjuntos de registros de tarefas podem ser realizadas por chamar funções de API ODBC ou diretamente executar instruções de SQL com CDatabase::.

Personalizando a seleção

Além de fornecer um filtro, uma ordem de classificação ou parâmetros, você pode tomar as seguintes ações para personalizar a seleção do recordset:

  • Passe uma seqüência personalizada de SQL em lpszSQL ao chamar Abrir do conjunto de registros.Nada passar no lpsqSQL tem precedência sobre o que o GetDefaultSQL função de membro retorna.

    Para obter mais informações, consulte SQL: declaração de SQL Personalizando seu do Recordset (ODBC), que descreve os tipos de declarações de SQL (ou instruções parciais), você pode passar para Abrir e com eles a estrutura faz.

    ObservaçãoObservação

    Se a seqüência personalizada que você passar não começa com "SELECT" ou "{chamada", MFC pressupõe que ele contém um nome de tabela.Isso também se aplica para o próximo item.

  • Alterar a seqüência de caracteres que o assistente grava no seu conjunto de registros GetDefaultSQL função de membro.Edite o código da função para alterar o que retorna.Por padrão, o assistente grava um GetDefaultSQL função que retorna um nome de tabela simples.

    Você pode ter GetDefaultSQL retornar qualquer um dos itens que você pode passar o lpszSQL parâmetro para Abrir.Se você não passar uma seqüência personalizada de SQL em lpszSQL, a estrutura usa a seqüência de caracteres que GetDefaultSQL retorna.No mínimo, GetDefaultSQL deve retornar o nome de uma única tabela.Mas você pode ter retornar vários nomes de tabela, uma completa Selecionar instrução ODBC chamada instrução e assim por diante.Para obter uma lista dos quais você pode passar lpszSQL — ou tem GetDefaultSQL retornar — consulte SQL: declaração de SQL Personalizando seu do Recordset (ODBC).

    Se você estiver executando uma associação de duas ou mais tabelas, reescrever GetDefaultSQL para personalizar a lista de tabela usada no SQL FROM cláusula.Para obter mais informações, consulte Recordset: executar uma associação (ODBC).

  • Vincule manualmente os membros de dados de campo adicional, talvez com base em informações que obter sobre o esquema de fonte de dados em tempo de execução.Adicionar membros de dados de campo para a classe de conjunto de registros RFX ou chamadas de função RFX em massa para que eles o DoFieldExchange ou DoBulkFieldExchange função de membro e inicializações de membros de dados no construtor da classe.Para obter mais informações, consulte Recordset: dinamicamente vinculação de dados de colunas (ODBC).

  • Substituir funções de membro do conjunto de registros, como OnSetOptions, para definir opções específicas do aplicativo ou para substituir os padrões.

Se você deseja basear o conjunto de registros em uma instrução SQL complexa, você precisa usar uma combinação dessas técnicas de personalização.Por exemplo, talvez você queira usar as cláusulas SQL e palavras-chave não aceitas diretamente por conjuntos de registros ou talvez você estão ingressando em várias tabelas.

Consulte também

Conceitos

Conjunto de registros (ODBC)

Recordset: Como conjuntos de registros atualizam registros (ODBC)

Noções básicas sobre ODBC

SQL

Recordset: Bloqueio de registros (ODBC)