Data.Win.ADODB.TCustomADODataSet.Seek

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

function Seek(const KeyValues: Variant; SeekOption: TSeekOption = soFirstEQ): Boolean;

C++

bool __fastcall Seek(const System::Variant &KeyValues, TSeekOption SeekOption = (TSeekOption)(0x0));

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
function public
Data.Win.ADODB.pas
Data.Win.ADODB.hpp
Data.Win.ADODB TCustomADODataSet

Beschreibung

Sucht mithilfe des aktuellen Index nach einem bestimmten Datensatz.

Mit Seek können Sie in dem Feld (oder den Feldern), auf dem der aktuelle Index basiert, nach einem bestimmten Wert (oder Werten) suchen. Die Methode kann nur verwendet werden, wenn ein Index aktiv ist. Für die Suche wird das aktuelle Indexfeld verwendet. Das Ergebnis der Operation wirkt sich auf die Position des Datensatzzeigers aus. Wenn die Methode einen Datensatz findet, wird der Satzzeiger auf ihm positioniert. Andernfalls wird der Satzzeiger an das Ende der Datenmenge gesetzt. Seek gibt einen booleschen Wert zurück, der signalisiert, ob die Ausführung erfolgreich war: Wenn ein Datensatz gefunden wurde true, andernfalls false.



SuccessVar := ADODataSet1.Seek('Jones', soFirstEQ);



SuccessVar = ADODataSet1->Seek("Jones", soFirstEQ);



Wenn der aktuelle Index auf mehreren Feldern basiert, müssen die Suchwerte für die Felder im Indexausdruck nacheinander von links nach rechts angegeben werden. So kann beispielsweise bei einem Index mit drei Feldern die Suche nach dem ersten, nach dem ersten und zweiten oder nach dem ersten, zweiten und dritten Feld durchgeführt werden. Eine Suche nur nach dem dritten oder nach dem ersten und dritten Feld ist nicht möglich. Um nach mehreren Feldern zu suchen, übergeben Sie Seek ein variantes Array.

KeyValues enthält den gesuchten Wert.



ADODataSet1.Seek(VarArrayOf([90030, 90020]), soFirstEQ);



ADODataSet1->Seek(VarArrayOf(OPENARRAY(Variant, (90030, 90020))), soFirstEQ);



Wenn der Index auf mehreren Feldern basiert, können auch mehrere Werte angegeben werden. Der Parameter SeekOption legt die Suchoptionen fest und kann eine der folgenden Konstanten enthalten:



Konstante Bedeutung

soFirstEQ

Der Satzzeiger wird auf dem ersten gefundenen Datensatz positioniert. Wird keine Übereinstimmung gefunden, wird er an das Ende der Datenmenge gesetzt.

soLastEQ

Der Satzzeiger wird auf dem letzten gefundenen Datensatz positioniert. Wird keine Übereinstimmung gefunden, wird er an das Ende der Datenmenge gesetzt.

soAfterEQ

Der Satzzeiger wird auf dem gefundenen Datensatz positioniert. Wird keine Übereinstimmung gefunden, wird er hinter die Position gesetzt, an der sich der Datensatz befinden würde.

soAfter

Der Satzzeiger wird hinter die Position gesetzt, an der sich der Datensatz befinden würde.

soBeforeEQ

Der Satzzeiger wird auf dem gefundenen Datensatz positioniert. Wird keine Übereinstimmung gefunden, wird er vor die Position gesetzt, an der sich der Datensatz befinden würde.

soBefore

Der Satzzeiger wird vor die Position gesetzt, an der sich der Datensatz befinden würde.



Der Einsatz der Methode Seek ist von den Einstellungen einiger Eigenschaften abhängig. IndexName muss gesetzt sein, damit der zu verwendende Index aktiviert wird, CommandType muss cmdTableDirect (für TADODataSet; für TADOTable setzen Sie TableDirect auf true), CursorLocation clUseServer und CursorType ctKeySet sein.

Anmerkung:  Die VCL-Methode Seek stellt eine direkt Implementierung der Methode Seek des ADO-Recordset-Objekts dar. Zu dem Zeitpunkt, als diese Hilfedatei erstellt wurde, wird diese Methode nur für Microsoft Access2000 und dem Provider Jet 4 unterstützt.

Siehe auch