Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Locate methode auf der nativen Seite von ADO (https://www.delphipraxis.net/66724-locate-methode-auf-der-nativen-seite-von-ado.html)

Helmeru 3. Apr 2006 09:35

Datenbank: Access2002 • Zugriff über: ADO

Locate methode auf der nativen Seite von ADO
 
Hallo,
ich suche eine Methode die es mir ermöglicht im recordset zu positionieren per Suchwert in einem oder mehreren Feldern und auch mitbekomme wenn der Suchbegriff nicht gefunden wird (wie die locate Methode bei den dbExpress Komponenten) mit seek oder find komme ich nicht so recht weiter, da die beiden keinen Bool Wert zurückgeben. hat da jemand eine Idee ?

Danke
Uwe Helmer

jensw_2000 3. Apr 2006 09:45

Re: Locate methode auf der nativen Seite von ADO
 
Ich hoffe, das ich dich nicht missverstehe.

Locate gibt es doch auch bei AOD.

- Suche in einem Feld -

Delphi-Quellcode:
With EineAdoTable do
begin
if locate('Nachname','Meier',[loCaseInsensitive]) then
  Showmessage ('Nachname Meier gefunden. Der Vorname ist: ' + FieldByName('Vorname').AsString) else
  Showmessage ('Meier gibt es nicht in der DB !');
end;
- Suche in mehreren Feldern -

Delphi-Quellcode:
With EineAdoTable do
begin
if locate('Nachname,Vorname',VarArrayOf(['Meier','Max']),[loCaseInsensitive]) then
  Showmessage ('Max Meier gefunden. Geburtsdatum ist: ' + FieldByName('GeborenAm').AsString) else
  Showmessage ('Max Meier gibt es nicht in der DB !');
end;

Schöne Grüße,
Jens

Helmeru 3. Apr 2006 09:52

Re: Locate methode auf der nativen Seite von ADO
 
Danke Jens für deine schnelle Anwort,
ich möchte die locate Methode der dbExpress Komponenten nicht benutzen, weil ich zum Teil um den Faktor 10 schneller bin wenn ich die Wrapper Komponenten weglasse.

Ich suche also eine Alernative zu locate und das einzige was ich bis jetzt gefunden habe ist seek oder find.

Trotzdem.
Danke
Uwe

jensw_2000 4. Apr 2006 06:05

Re: Locate methode auf der nativen Seite von ADO
 
Tut mir Leid, dazu habe ich keine Lösung.

Sicher weissst du das, aber der Vollständigkeit halber noch eine kleine Anmerkung...
Mit DisableControls/EnableControls kannst du die Performance von Locate idR deutlich steigern.

Delphi-Quellcode:
With EineAdoTable do
begin
  DisableControls;
  try
    if locate('Nachname','Meier',[loCaseInsensitive]) then
      Showmessage ('Nachname Meier gefunden. Der Vorname ist: ' + FieldByName('Vorname').AsString) else
      Showmessage ('Meier gibt es nicht in der DB !');
  finally
    EnableControls;
  end;
end;

Schöne Grüße,
Jens
:hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:56 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz