CDaoRecordset::Seek

BOOL Seek (LPCTSTR lpszComparison, COleVariant * pKey1, COleVariant * pKey2 = NULL, COleVariant * pKey3 = NULL);
tiro (CDaoException, CMemoryException);

BOOL Seek (LPCTSTR lpszComparison, COleVariant * pKeyArray, WORD nKeys);
gettare (CDaoException, CMemoryException);

Valore restituito

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

Parametri

lpszComparison

Uno dei seguenti espressioni stringa: "lt", "< =", "=", "> =", o ">".

pKey1

Puntatore a un COleVariant cui valore corrisponde al primo campo in the index. Obbligatorio.

pKey2

Puntatore a un COleVariant cui valore corrisponde al secondo campo nell'indice, se presente. Impostazioni predefinite su NULL.

pKey3

Puntatore a un COleVariant cui valore corrisponde al campo terzo nell'indice, se presente. Impostazioni predefinite su NULL.

pKeyArray

Puntatore a una matrice di varianti. La dimensione della matrice corrisponde al numero di campi nell'indice.

nKeys

Un valore integer corrispondente alla dimensione della matrice, che è il numero dei campi nell'indice.

&Notanbsp;  Non specificare i caratteri jolly nelle chiavi. Caratteri jolly causerà Seek che non restituisca alcun record corrispondenti.

Osservazioni

Chiamare questa funzione membro per individuare il record in un oggetto recordset di tipo tabella indicizzata che soddisfa i criteri specificati per l'attuale indicizzano e che fanno registrare il record corrente. Utilizzare la seconda versione (matrice) di Seek per gestire gli indici dei campi di quattro o più.

Seek consente ad alte prestazioni indice durante la ricerca di recordset di tipo tabella. È necessario impostare l'indice corrente chiamando SetCurrentIndex prima di chiamare Seek. Se l'indice identifica un campo chiave non univoco o campi, Seek individua il primo record che soddisfa i criteri. Se non si imposta un indice, viene generata un'eccezione.

Si noti che se non si sta creando un recordset UNICODE, gli oggetti COleVariant devono essere esplicitamente dichiarati ANSI. Questo può essere fatto utilizzando il modulo di COleVariant::COleVariant( lpszSrc, vtSrc ) del costruttore con vtSrc impostato su VT_BSTRT (ANSI) oppure utilizzando la funzione COleVariant SetString( lpszSrc, vtSrc ) con vtSrc impostato su VT_BSTRT.

Quando si chiama Seek, passare uno o più valori di chiave e un operatore di confronto ("lt", "< =", "=", "> =", o ">"). Seek ricerche attraverso i campi chiave specificati e individua il primo record che soddisfa i criteri specificati da lpszComparison e pKey1. Una volta trovati, Seek restituisce diverso da zero e fa quel record corrente. Se Seek non riesce a individuare una corrispondenza, Seek restituisce zero e il record corrente non è definito. Quando si utilizza DAO direttamente, è necessario controllare in modo esplicito la proprietà NoMatch.

Se è lpszComparison "=", nbsp; "> =", o ">", Seek comincia all'inizio dell'indice. Se lpszComparison è "<" o "< =", Seek inizia alla fine dell'indice e all'indietro, a meno che non ci sono ricerche duplicano le voci di indice alla fine. In questo caso, Seek inizia con una voce arbitraria tra le voci di indice duplicati al termine dell'indice.

Non dovrà essere un record corrente quando si utilizza Seek.

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

Perché tabelle collegate devono essere aperte come dynaset o recordset di tipo snapshot, non è possibile chiamare Seek su una tabella allegata di qualsiasi tipo. Tuttavia, se si chiama CDaoDatabase::Open per aprire direttamente un database ISAM installabile, è possibile chiamare Seek su tabelle in tale database, anche se le prestazioni possono essere lenta.

Per ulteriori informazioni sulla ricerca di record, vedere l'articolo Recordset DAO: navigazione Recordset nel manuale del programmatore di Visual C++. Per informazioni correlate, vedere l'argomento "Metodo Seek" nella guida di DAO.

Pa&noramica CDaoRecordset |nbsp; Membri della classe | Gerarchia Chart

Vedere anchenbsp;CDaoRecordset::FindFirst, CDaoRecordset::FindLast, CDaoRecordset::Find&Next, CDaoRecordset::FindPrev, CDaoRecordset::Move, CDaoRecordset::MoveFirst, CDaoRecordset::MoveLast, CDaoRecordset::MoveNext, CDaoRecordset::MovePrev, COleVariant::COleVariant, COleVariant::SetString

Index