Partager via


CDaoRecordset::Seek

Appelez la fonction membre pour localiser l'enregistrement dans un objet indexé de recordset de type table qui répond aux critères spécifiés pour l'index actuel et la faire qui signalent l'enregistrement courant.

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

Paramètres

  • lpszComparison
    L'une des expressions de chaîne suivantes : « < », « <= », « = », « >= », ou « > ».

  • pKey1
    Un pointeur vers COleVariant dont la valeur correspond au premier champ de l'index. Requis.

  • pKey2
    Un pointeur vers COleVariant dont la valeur correspond au deuxième champ dans l'index échéant. Valeurs par défaut à NULL.

  • pKey3
    Un pointeur vers COleVariant dont la valeur correspond au troisième champ dans l'index échéant. Valeurs par défaut à NULL.

  • pKeyArray
    Pointeur vers un tableau de variants. La taille du tableau correspond au nombre de champs dans l'index.

  • nKeys
    Un entier correspondant à la taille du tableau, qui est le nombre de champs dans l'index.

    Notes

    Ne spécifiez pas les caractères génériques dans les clés.Les masques provoquent ne retourner Seek aucun enregistrement de correspondance.

Valeur de retour

Une valeur différente de zéro si correspondant aux enregistrements sont détectés, sinon 0.

Notes

Utilisez la deuxième version (tableau) d' Seek pour gérer des index de quatre champs ou de plus.

Seek active l'index hautes performances recherche sur les recordsets de type table. Vous devez affecter l'index actuel en appelant SetCurrentIndex avant d'appeler Seek. Si l'index identifie un champ clé ou des champs non uniques, Seek trouve le premier enregistrement qui répond aux critères. Si vous ne définissez pas un index, une exception est levée.

Notez que si vous ne créez pas d'un recordset UNICODE, les objets d' COleVariant doivent être explicitement déclarés ANSI. Cette opération peut être effectuée à l'aide de la forme de COleVariant::COleVariant( lpszSrc**,** vtSrc ) du constructeur avec vtSrc affectez à VT_BSTRT (ANSI) ou à l'aide de la fonction SetString( lpszSrc**,** vtSrcde COleVariant ) avec vtSrc affectez à VT_BSTRT.

Lorsque vous appelez Seek, vous passez une ou plusieurs valeurs de clés et un (" < d'opérateur de comparaison », « <= », « = », « >= », ou « > "). Les recherches d'Seek dans les champs clés spécifiés et recherche le premier enregistrement qui répond aux critères spécifiés par lpszComparison et pKey1. Après avoir trouvé, Seek retourne une valeur différente de zéro, et effectue les opérations en cours de création. Si Seek ne recherche pas de correspondance, Seek retourne zéro, et l'enregistrement en cours est pas défini. En utilisant DAO directement, vous devez explicitement vérifier la propriété de NoMatch.

Si lpszComparison est « = », « >= », ou « > », Seek commence au début de l'index. Si lpszComparison est « < » ou « <= », Seek démarre à la fin de l'index et recherche vers le début à moins qu'il y ait des entrées d'index en double à la fin. Dans ce cas, Seek commence à une entrée arbitraire entre les entrées d'index en double à la fin de l'index.

Il ne doit pas y a un enregistrement actif lorsque vous utilisez Seek.

Pour localiser un enregistrement dans un recordset de type feuille de réponse dynamique ou de type instantané qui remplit une condition spécifique, utilisez les opérations de recherche. Pour inclure tous les enregistrements, pas seulement ceux qui répondent à une condition spécifique, utilisez les opérations de déplacement pour passer d'un enregistrement à l'autre.

Vous ne pouvez pas appeler Seek sur une table jointe d'un type car les tables jointes doivent être ouverts en tant que recordsets de type feuille de réponse dynamique ou de type instantané. Toutefois, si vous appelez CDaoDatabase::Open pour ouvrir directement une base de données installable de méthode d'accès séquentiel indexé, vous pouvez appeler Seek sur des tables dans cette base de données, bien que la représentation peut être lente.

Pour des informations connexes, consultez la rubrique « méthode d'accès » dans l'aide de DAO.

Configuration requise

Header: afxdao.h

Voir aussi

Référence

CDaoRecordset, classe

Graphique de la hiérarchie

CDaoRecordset::FindFirst

CDaoRecordset::FindLast

CDaoRecordset::FindNext

CDaoRecordset::FindPrev

CDaoRecordset::Move

CDaoRecordset::MoveFirst

CDaoRecordset::MoveLast

CDaoRecordset::MoveNext

CDaoRecordset::MovePrev

COleVariant::COleVariant

COleVariant::SetString