Compartilhar via


O conjunto de registros: Filtragem de registros (ODBC)

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

Este tópico explica como filtrar um conjunto de registros para que ele seleciona apenas um subconjunto específico de registros disponíveis. Por exemplo, convém selecionar apenas as seções de classe para um curso específico, como, por exemplo, MATH101. Um filtro é um critério de pesquisa definido pelo conteúdo de um SQL onde cláusula. Quando o framework acrescenta à declaração de SQL do conjunto de registros, o onde cláusula restringe a seleção.

Deve estabelecer o filtro de um objeto recordset após você construir o objeto, mas antes de chamar seu Abrir a função de membro (ou antes de chamar o Requery a função de membro de um conjunto de registros existente de objeto cuja Abrir a função de membro foi chamada anteriormente).

Para especificar um filtro para um objeto recordset

  1. Construir um novo objeto recordset (ou se preparar para chamar Requery para um objeto existente).

  2. Definir o valor do objeto m_strFilter o membro de dados.

    O filtro é uma seqüência terminada por caractere nulo que contém o conteúdo da SQL onde cláusula mas não a palavra-chave onde. Por exemplo, use:

    m_pSet->m_strFilter = "CourseID = 'MATH101'";
    

    não

    m_pSet->m_strFilter = "WHERE CourseID = 'MATH101'";
    
    ObservaçãoObservação

    A seqüência literal "math101" é mostrada com aspas simples acima. Na especificação de SQL do ODBC, aspas simples são usadas para indicar uma seqüência de caracteres literal. Verifique a documentação do driver ODBC para os requisitos de cotação do seu DBMS nessa situação. Essa sintaxe também é discutida mais próximo ao final deste tópico.

  3. Defina outras opções que você precisa, como, por exemplo, ordem de classificação, o modo de bloqueio ou parâmetros. Especificar um parâmetro é especialmente útil. Para obter informações sobre o seu filtro de parametrização, consulte Recordset: Parametrização de um conjunto de registros (ODBC).

  4. Chame Abrir para o novo objeto (ou Requery para um objeto aberto anteriormente).

Dica

Usando os parâmetros no filtro é potencialmente o método mais eficiente para recuperação de registros.

Dica

Filtros de conjunto de registros são úteis para ingressando tabelas e para o uso de parâmetros de com base nas informações obtidas ou calculado em tempo de execução.

O conjunto de registros seleciona somente os registros que satisfazem o critério de pesquisa especificado. Por exemplo especificar o filtro de curso descrito acima (supondo que uma variável strCourseID definido no momento, por exemplo, para "math101"), faça o seguinte:

// Using the recordset pointed to by m_pSet

// Set the filter
m_pSet->m_strFilter = "CourseID = " + strCourseID; 

// Run the query with the filter in place
if ( m_pSet->Open( CRecordset::snapshot, NULL, CRecordset::readOnly ) )

// Use the recordset

O recordset contém registros de todas as seções de classe para MATH101.

Observe como a seqüência de caracteres de filtro foi definida no exemplo acima, usando uma variável de seqüência de caracteres. Esse é o uso típico. Mas suponha que você queira especificar o valor literal 100 para a identificação do curso. O código a seguir mostra como definir a seqüência de caracteres de filtro corretamente com um valor literal:

m_strFilter = "StudentID = '100'";   // correct

Observe o uso de caracteres de aspas simples; Se você definir a seqüência de caracteres de filtro diretamente, a seqüência de caracteres de filtro é não:

m_strFilter = "StudentID = 100";   // incorrect for some drivers

Cotação mostrado acima está de acordo com a especificação ODBC, mas alguns DBMSs podem requerer outros caracteres de aspas. Para obter mais informações, consulte SQL: Personalizando a instrução de SQL do Recordset (ODBC).

ObservaçãoObservação

Se você optar por substituir a seqüência de caracteres do conjunto de registros padrão SQL, passando a sua própria seqüência de SQL para Abrir, você não deve definir um filtro, se a seqüência de caracteres personalizada tem um onde cláusula. Para obter mais informações sobre como substituir o padrão SQL, consulte SQL: Personalizando a instrução de SQL do Recordset (ODBC).

Consulte também

Conceitos

O conjunto de registros (ODBC)

O conjunto de registros: Classificar registros (ODBC)

O conjunto de registros: Como os conjuntos de registros selecionar registros (ODBC)

O conjunto de registros: Como os conjuntos de registros atualizam registros (ODBC)

O conjunto de registros: Bloqueio de registros (ODBC)