Condividi tramite


CDaoRecordset::Seek

Chiamare la funzione membro per individuare il record in un oggetto indicizzato di recordset di tipo tabella che soddisfa i criteri specificati per l'indice corrente e fare che registra il record corrente.

BOOL Seek(
   LPCTSTR lpszComparison,
   COleVariant* pKey1,
   COleVariant* pKey2 = NULL,
   COleVariant* pKey3 = NULL 
);
BOOL Seek(
   LPCTSTR lpszComparison,
   COleVariant* pKeyArray,
   WORD nKeys 
);

Parametri

  • lpszComparison
    Una delle espressioni di stringa: "<", "<=", "=", ">=", o ">".

  • pKey1
    Un puntatore a COleVariant il cui valore corrisponde al primo campo dell'indice.Necessario.

  • pKey2
    Un puntatore a COleVariant il cui valore corrisponde al secondo campo nell'indice, se disponibile.L'impostazione predefinita è NULL.

  • pKey3
    Un puntatore a COleVariant il cui valore corrisponde al terzo campo nell'indice, se disponibile.L'impostazione predefinita è NULL.

  • pKeyArray
    Un puntatore a una matrice di variabili.La dimensione della matrice corrisponde al numero di campi nell'indice.

  • nKeys
    Un numero intero che corrisponde alla dimensione della matrice, ovvero il numero di campi nell'indice.

    [!NOTA]

    Non specificare i caratteri jolly nelle chiavi.I caratteri jolly determinerà l'interruzione Seek per non restituire record corrispondente.

Valore restituito

Diverso da zero se i record corrispondenti vengono trovati, altrimenti 0.

Note

Utilizzare la seconda versione (array) Seek per gestire gli indici di quattro campi o più.

Seek abilita indice a elevate prestazioni riscontrati nei recordset di tipo tabella.È necessario impostare l'indice corrente chiamando SetCurrentIndex chiamare Seek.Se l'indice identifica un campo chiave o campi nonunique, Seek individuare il primo record che soddisfano i criteri.Se non si imposta un indice, viene generata un'eccezione.

Notare che se non si sta creando un recordset di UNICODE, gli oggetti COleVariant devono essere ANSI in modo esplicito dichiarato.Questa operazione può essere eseguita tramite il form COleVariant::COleVariant( lpszSrc**,** vtSrc ) del costruttore con vtSrc impostato su VT_BSTRT (ANSI) o tramite la funzione SetString( lpszSrc**,** vtSrc )COleVariant con vtSrc impostato su VT_BSTRT.

Quando si chiama Seek, si passano uno o più valori della chiave e un (" < operatore di confronto", "<=", "=", ">=", o "> ").Seek trova tra i campi chiave specificati e individuare il primo record che soddisfano i criteri specificati da lpszComparison e da pKey1.Dopo avere trovato, Seek restituisce diverso da zero e selezionare quella corrente record.Se Seek non riesce a individuare una corrispondenza, Seek restituisce zero e il record corrente viene definito.Quando si utilizza DAO direttamente, è necessario controllare in modo esplicito la proprietà di NoMatch.

Se lpszComparison è "=", ">=", o ">", Seek inizia all'inizio dell'indice.Se lpszComparison è "<" o "<=", Seek avvio dell'indice e cerca nuovamente a meno che siano presenti voci di indice duplicate alla fine.In questo caso, Seek inizia da una voce arbitraria tra le voci duplicate di indice dell'indice.

È necessario che un record corrente quando si utilizza Seek.

Per individuare un record in un recordset di tipo dynaset o di tipo snapshot che soddisfa una condizione specifica, utilizzare le operazioni di ricerca.Per includere tutti i record, non solo quelli che soddisfano una condizione specifica, utilizzare le operazioni di spostamento per passare da un record a un altro.

Non è possibile chiamare Seek su una tabella collegata di tipo perché le tabelle collegate devono essere aperto come recordset di tipo dynaset o di tipo snapshot.Tuttavia, se si chiama CDaoDatabase::Open direttamente per aprire un database installabile di ISAM, è possibile chiamare Seek alle tabelle del database, sebbene le prestazioni possono risultare lente.

Per informazioni correlate, vedere l'argomento "metodo Seek" nella Guida di DAO.

Requisiti

Header: afxdao.h

Vedere anche

Riferimenti

Classe di CDaoRecordset

Grafico della gerarchia

CDaoRecordset::FindFirst

CDaoRecordset::FindLast

CDaoRecordset::FindNext

CDaoRecordset::FindPrev

CDaoRecordset::Move

CDaoRecordset::MoveFirst

CDaoRecordset::MoveLast

CDaoRecordset::MoveNext

CDaoRecordset::MovePrev

COleVariant::COleVariant

COleVariant::SetString