Condividi tramite


CRecordset::Requery

Ricompila (aggiornare) un recordset.

virtual BOOL Requery( );

Valore restituito

Diverso da zero se il recordset è stato ricompilato correttamente; in caso contrario 0.

Note

Se i record da restituire, il primo record diventa il record corrente.

In modo che il recordset per riflettere le aggiunte e le eliminazioni che l'utente o altri utenti consiste nell'origine dati, è necessario ricompilare il recordset chiamando Requery.Se il recordset è un dynaset, viene riportata automaticamente gli aggiornamenti di l o altri utenti ai record esistenti (ma non le aggiunte).Se il recordset è uno snapshot, è necessario chiamare Requery per riflettere le modifiche apportate da altri utenti e aggiunte ed eliminazioni.

Per un dynaset o uno snapshot, una chiamata Requery ogni qualvolta si desidera ricompilare il recordset mediante nuovo filtro o l'ordinamento, o i nuovi valori del parametro.Impostare la nuova proprietà di ordinamento o di filtro assegnare nuovi valori a m_strFilter e a m_strSort chiamare Requery.Presenti nuovi parametri assegnare nuovi valori ai membri dati di parametro chiamare Requery.Se il filtro e stringhe di ordinamento sono rimasti invariati, è possibile riutilizzare la query, che migliora le prestazioni.

Se ricompilare il recordset non riesce, il recordset viene chiuso.Prima di chiamare Requery, è possibile determinare se il recordset è possibile ripetere una query chiamando la funzione membro CanRestart.CanRestart non garantisce che Requery riuscirà.

Nota di avvisoAttenzione

Chiamata Requery solo dopo aver chiamato Apri.

Eccezioni

Questo metodo può generare eccezioni di tipo CDBException* e CMemoryException*.

Esempio

In questo esempio vengono ricompilate un recordset per applicare un ordinamento diverso.

CCustomer rsCustSet(&m_dbCust);

// Open the recordset
rsCustSet.Open();

// Use the recordset ...

// Set the sort order and Requery the recordset
rsCustSet.m_strSort = _T("L_Name, ContactFirstName");
if(!rsCustSet.CanRestart())
   return;    // Unable to requery

if(!rsCustSet.Requery())
   // Requery failed, so take action
   AfxMessageBox(_T("Requery failed!"));

Requisiti

Header: afxdb.h

Vedere anche

Riferimenti

Classe di CRecordset

Grafico della gerarchia

CRecordset::CanRestart

CRecordset::m_strFilter

CRecordset::m_strSort