Compartilhar via


conjunto de registros: Como Recordsets selecionar registros (ODBC)

Este tópico se aplica a classes MFC ODBC.

Este tópico explica:

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

  • Como um conjunto de registros constrói sua demonstrativo SQL e seleciona os registros.

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

Recordsets selecionar registros de uma fonte de dados por meio de um driver ODBC, enviando as instruções SQL para o driver.SQL enviada depende de como você cria e abre sua classe de conjunto de registros.

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

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

Como e quando você pode afetar um conjunto de registros

Quando você

Você pode

Declarar sua classe de conjunto de registros com o Adicionar classe Assistente

Especifica qual tabela para selecionar a partir de.

Especifique quais colunas incluir.

See Adicionando um consumidor ODBC do MFC.

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

Substituir membro funções, sistema autônomo OnSetOptions (Avançado) para conjunto opções específicas do aplicativo ou alterar sistema autônomo padrões. Especificar membros de dados do parâmetro se quiser um conjunto de registros com parâmetros.

Construir um objeto conjunto de registros (antes de você telefonar em aberto)

Especificar um critério de Pesquisar (possivelmente composto) para uso em um ONDE cláusula que filtra os registros.See conjunto de registros: Filtragem de registros (ODBC).

Especificar uma ordem de classificar para uso em um ORDENAR POR cláusula que classifica os registros.See conjunto de registros: Classificar registros (ODBC).

Especifique os valores de parâmetro para quaisquer parâmetros adicionados à classe.See conjunto de registros: Parametrização um conjunto de registros (ODBC).

Executar consulta do conjunto de registros chamando em aberto

Especifique uma seqüência de caracteres SQL personalizada para substituir a seqüência de caracteres padrão SQL configurada pelo assistente.See CRecordset::em aberto in the Referência da biblioteca de classes and SQL: Personalizando conjunto de registros demonstrativo SQL (ODBC).

De telefonarrepetir consulta para repetir consulta conjunto de registros com os valores mais recentes na fonte de dados

Especificar parâmetros novos, filtro ou classificar.See conjunto de registros: Repetindo a consulta um conjunto de registros (ODBC).

Como um conjunto de registros construção seu demonstrativo SQL

Quando você telefonar em aberto função de membro , em aberto constrói uma demonstrativo SQL usando alguns ou todos os componentes seguintes:

  • The lpszSQL parâmetro passado para em aberto.Se não NULO, este parâmetro especifica uma seqüência SQL personalizada ou parte de um.A estrutura analisa a seqüência de caracteres.Se a seqüência for um SQL selecionar demonstrativo ou um ODBC telefonar demonstrativo, a estrutura usa a seqüência de caracteres sistema autônomo demonstrativo do SQL do conjunto de registros.Se a seqüência de caracteres não começa com "selecionar" ou "{telefonar", a estrutura usa o que é fornecido para construir um SQLDE cláusula.

  • A seqüência de caracteres retornada pelo GetDefaultSQL.Por padrão, esse é o nome da tabela especificado para o conjunto de registros no assistente, mas você pode alterar a função retorna.A estrutura chama GetDefaultSQL— Se a seqüência de caracteres não começa com "selecionar" ou "{telefonar", ele é considerado um nome da tabela, que é usado para construir uma seqüência de caracteres SQL.

  • Os campo dados membros do conjunto de registros que devem ser vinculados a colunas específicas da tabela.A estrutura liga colunas registrar sistema autônomo endereços desses membros, usando-sistema autônomo sistema autônomo buffers.A estrutura determina a correlação de membros de dados do campo para colunas da tabela do RFX ou BULK RFX função chama do conjunto de registros DoFieldExchange or DoBulkFieldExchangefunção de membro .

  • The filtro para o conjunto de registros, se houver, contido no m_strFilter membro de dados.A estrutura usa essa seqüência de caracteres para construir um SQL ONDE cláusula.

  • The classificar solicitar para o conjunto de registros, se houver, contido no m_strSort membro de dados.A estrutura usa essa seqüência de caracteres para construir um SQL ORDENAR POR cláusula.

    Dica:

    Para usar o SQL AGRUPAR POR cláusula (e possivelmente o TENDO cláusula), acrescentar as cláusulas ao participante da seqüência de caracteres do filtro.

  • Os valores de qualquer membros de dados de parâmetro que você especificar para a classe.conjunto valores de parâmetro antes de chamar o em aberto or Repetir a consulta.A estrutura vincula os valores de parâmetro para "?" espaços reservados na seqüência de caracteres SQL.No momento da compilar, você pode especificar a seqüência de caracteres com espaços reservados.Em time de execução, a estrutura preenche os detalhes com base nos valores de parâmetro que você passar.

em aberto constrói um SQL selecionar demonstrativo desses ingredientes.See Personalizando a seleção para obter detalhes sobre como a estrutura usa os ingredientes.

Depois de construir a demonstrativo, em aberto envia o SQL para o Gerenciador de driver ODBC (e a biblioteca de cursores ODBC), caso ele esteja na memória que envia em para o driver ODBC para o DBMS específico.O driver se comunica com o DBMS para executar a seleção na fonte de dados e acessa o primeiro registro.A estrutura carrega o registro para os membros de dados de campo do conjunto de registros.

Você pode usar uma combinação dessas técnicas para em em aberto tabelas e construir uma consulta baseada em um unir de várias tabelas.Com a personalização adicional, você pode telefonar consultas predefinidas (procedimentos armazenados), selecionar colunas não conhecidas no time de design e da tabelaBIND-los para campos do conjunto de registros ou você podem executar a maioria das outras tarefas de acesso a dados.Tarefas que não pode ser realizadas Personalizando conjuntos de registros ainda podem ser realizadas por chamar funções da API do ODBC ou em instruções SQL diretamente em execução com CDatabase::ExecuteSQL.

Personalizando a seleção

Além de fornecer um filtro, uma ordem de classificar ou parâmetros, você pode tomar ações a seguir para personalizar a seleção do seu conjunto de registros:

  • Passe uma seqüência de caracteres SQL personalizada em lpszSQL ao chamar em aberto para o conjunto de registros.Qualquer coisa que você passar em lpsqSQL tem precedência sobre a qual o GetDefaultSQLRetorna a função de membro .

    Para obter mais informações, consulte SQL: Personalizando conjunto de registros instrução SQL (ODBC), que descreve os tipos de instrução SQL s (ou instruções parcial), você pode passar para em aberto e o que faz a estrutura com eles.

    Observação:

    Se a seqüência personalizada que você passar não começa com "selecionar" ou "{telefonar", o MFC assumirá que contém um nome da tabela.Isso também se aplica para o próximo item com marcador.

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

    Você pode ter GetDefaultSQL retornar qualquer um dos itens que você pode passar a lpszSQL parâmetro em aberto.Se você não passar uma seqüência de caracteres SQL personalizada lpszSQL, a estrutura usa a cadeia de caracteres que GetDefaultSQL Retorna. Em um mínimo, GetDefaultSQL deve retornar um nome da tabela simples. Mas você pode ter retornar vários nomes de tabela, um total selecionar demonstrativo, um ODBC telefonardemonstrativo e assim por diante.Para obter uma lista dos quais você pode passar para lpszSQL — or have GetDefaultSQL retornar — consulte SQL: Personalizando conjunto de registros demonstrativo SQL (ODBC).

    Se você estiver executando uma unir de duas ou mais tabelas, reescrever GetDefaultSQL Para personalizar a Lista em Tabela usada no SQL DE cláusula.Para obter mais informações, consulte conjunto de registros: Executar uma unir (ODBC).

  • Vincule manualmente os membros de dados de campo adicional, talvez com base em informações que é obter sobre o esquema da fonte de dados em time de execução.Você adicionar membros de dados de campo à classe de conjunto de registros, RFX ou função Bulk RFX chama-los para o DoFieldExchange or DoBulkFieldExchangefunção de membro e inicializações dos membros de dados no construtor da classe.Para obter mais informações, consulte conjunto de registros: Vinculação de colunas de dados (ODBC) dinamicamente.

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

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

Consulte também

Conceitos

conjunto de registros (ODBC)

conjunto de registros: Como Recordsets atualização registros (ODBC)

Noções básicas do ODBC

SQL

conjunto de registros: Bloqueio de registros (ODBC)