CDaoRecordset::Seek

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

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

Wartość zwracany

Niezerowa, jeśli znaleziono pasujących rekordów, inaczej 0.

Parametry

lpszComparison

Jedno z następujących określeń ciąg: "lt;", "< =", „="," > = ", lub" > ".

pKey1

Wskaźnik COleVariant , którego wartość odpowiada pierwsze pole w indeksie. Wymagane.

pKey2

Wskaźnik COleVariant , którego wartość odpowiada polu drugi w indeksie, ewentualne. Domyślna wartość to wartość NULL.

pKey3

Wskaźnik COleVariant , którego wartość odpowiada trzecie pole w indeksie, a ewentualne. Domyślna wartość to wartość NULL.

pKeyArray

Wskaźnik tablicy wariantów. Rozmiar tablicy odpowiada liczba pól w indeksie.

nKeys

Całkowitą odpowiadającą rozmiar tablicy, która jest liczba pól w indeksie.

Uwaganbsp;  &Nie określaj symboli wieloznacznych w kluczach. Symbole wieloznaczne spowoduje, że wyszukiwania do zwrotu nie pasujących rekordów.

Uwagi

Wywołanie tej funkcji Państwa do zlokalizowania rekordu w obiekcie recordset indeksowanej tabeli, która spełnia określone kryteria dla bieżącego indeksu i należy, że rejestrowanie bieżącego rekordu. Użyć drugiej wersji (tablica) Seek indeksy pól czterech lub więcej.

Szukaj umożliwia wysokiej wydajności indeksu wyszukiwania w tabeli typu zestawy rekordów. Należy ustawić bieżący indeks przez wywołanie SetCurrentIndex przed wywołaniem metody Seek. Jeśli indeks identyfikuje nieunikatowy pola klucza lub pola, Seek lokalizuje pierwszą rekordu, który spełnia kryteria. Jeśli nie utworzysz indeksu, zostanie zgłoszony wyjątek.

Należy zauważyć, że jeśli nie tworzysz zestaw rekordów UNICODE, obiekty COleVariant musi być zadeklarowana w sposób jawny ANSI. Można to zrobić przy użyciu formularza vtSrc ) COleVariant::COleVariant( lpszSrc, , konstruktora vtSrc ustawiony na VT_BSTRT (ANSI) lub za pomocą funkcji COleVariant SetString( lpszSrc, vtSrc ) z vtSrc ustawiona na VT_BSTRT.

Po wywołaniu Seek, należy przekazać jeden lub więcej wartości kluczy oraz operator porównania ("lt;", "< =", „="," > = ", lub" > "). Wyszukiwania przeszuka określonych pól klucza i lokalizuje pierwszą rekordu, który spełnia kryteria określone przez lpszComparison i pKey1. Po znalezieniu Seek zwraca wartość różną od zera i sprawia, że ten rekord jest bieżącym. Jeśli Seek nie zlokalizuje pasującego, Seek zwraca zero, a bieżący rekord jest niezdefiniowane. Przy użyciu obiektów DAO bezpośrednio, musi jawnie sprawdzić, właściwość NoMatch.

Jeśli lpszComparison jest, „=", nbsp; "> =", lub ">", Seek zaczyna się od początku indeksu. Jeśli lpszComparison jest "<" lub "< =" Seek zaczyna się od końca indeksu i wyszukiwania wstecz, chyba że istnieją zduplikowane pozycje indeksu na końcu. W tym przypadku Seek zaczyna się wpis dowolnego spośród wpisów indeksu zduplikowane na końcu indeksu.

Tam nie ma być bieżący rekord, korzystając z wyszukiwania.

Aby zlokalizować rekord w dynamicznego lub zestaw rekordów typu migawka, który spełni określony warunek, należy użyć operacji znajdowania. Aby dołączyć wszystkie rekordy, nie tylko tych, które spełniają określony warunek, należy użyć operacji przenoszenia do przenoszenia między rekordami.

Nie można wywołać Seek w załączonej tabeli dowolnego typu, ponieważ załączonych tabel musi być otwarty jako dynamicznego lub zestawy rekordów typu migawka. Jednakże jeśli wywołasz CDaoDatabase::Open bezpośrednio otworzyć instalowalne bazy danych ISAM, można wywołać Seek tabel w tej bazie danych, chociaż wydajność może być powolne.

Aby uzyskać więcej informacji na temat znajdowania rekordów, zobacz artykuł zestawu rekordów DAO: nawigacji zestawu rekordów w Visual C++ Programmer's Guide. Aby uzyskać pokrewne informacje zobacz temat "Seek metoda" w pomocy programu DAO.

Omówie&nie CDaoRecordset |nbsp; Klasa członków | Wykres hierarchii

Zobacz teżnbsp;CDaoRecordset::FindFirst, CDaoRecordset::FindLast, CDaoRecordset::Find&Next, CDaoRecordset::FindPrev, CDaoRecordset::Move, CDaoRecordset::MoveFirst, CDaoRecordset::MoveLast, CDaoRecordset::MoveNext, CDaoRecordset::MovePrev, COleVariant::COleVariant, COleVariant::SetString

Index