Recordset: Filtragem de registros (ODBC)
Este tópico se aplica a 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 determinado curso, como MATH101.Um filtro é uma condição de pesquisa definida pelo conteúdo de um SQL onde cláusula.Quando a estrutura acrescenta à declaração de SQL do conjunto de registros, o onde cláusula restringe a seleção.
Você deve estabelecer filtro de um objeto recordset após você construir o objeto, mas antes de chamar seu Abrir função de membro (ou antes de chamar o Requery função de membro de um conjunto de registros existente objeto cuja Abrir membro função foi chamada anteriormente).
Para especificar um filtro para um objeto recordset
Construir um novo objeto recordset (ou se preparar para chamar Requery para um objeto existente).
Definir o valor do objeto m_strFilter membro de dados.
O filtro é uma cadeia terminada com nulo que contém o conteúdo de 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ção A seqüência literal "MATH101" é mostrada com aspas simples acima.A especificação ODBC SQL, aspas simples são usadas para indicar uma cadeia 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.
Defina outras opções que necessárias, como a ordem de classificação, modo de bloqueio ou parâmetros.Especificar um parâmetro é especialmente útil.Para obter informações sobre a parametrização seu filtro, consulte Recordset: parametrização um conjunto de registros (ODBC).
Chamar Abrir para o novo objeto (ou Requery para um objeto aberto anteriormente).
Dica |
---|
Usando parâmetros em seu filtro é potencialmente o método mais eficiente para recuperar os registros. |
Dica |
---|
Recordset filtros são úteis para união tabelas e para o uso 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, 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 conjunto de registros contém registros para 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 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 mostrada acima está de acordo com a especificação ODBC, mas alguns DBMSs podem exigir outros caracteres de aspas.Para obter mais informações, consulte SQL: declaração de SQL Personalizando seu do Recordset (ODBC).
Observaçã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 SQL para Abrir, você não deve definir um filtro se sua seqüência personalizada tem um onde cláusula.Para obter mais informações sobre como substituir o padrão SQL, consulte SQL: declaração de SQL Personalizando seu do Recordset (ODBC). |
Consulte também
Conceitos
Recordset: Classificar registros (ODBC)
Recordset: Como conjuntos de registros selecionar registros (ODBC)
Recordset: Como conjuntos de registros atualizam registros (ODBC)