Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Locate DateField (https://www.delphipraxis.net/211085-locate-datefield.html)

Thomas Feichtner 26. Jul 2022 08:32

Datenbank: ADS • Version: 12 • Zugriff über: FireDAC

Locate DateField
 
Hallo zusammen,
ich habe eine Tabelle mit mehreren Datensätzen. Diese Sind nach dem Datumsfeld sortiert.
In den Werten gibt es viele Einträge vor 20.6.2022 bzw. nach 15.08.2022.
Ich weiß leider nicht welche Datumeinträge es gibt.
Wenn ich heute (26.07.2022) die Tabelle öffne, möchte ich in die Nähe des Datums springen. Also entweder auf den 20.06. oder 15.08.

Das funktioniert leider nicht.
Code:
FdsPaft.Locate('paft_datum', Date, [loPartialKey]);

mkinzler 26. Jul 2022 08:43

AW: Locate DateField
 
Der Locate funktioniert nur, wenn auch Werte vom aktuellen Tag vorhanden sind.

Man könnte den höchsten Wert ermitteln im Bereich bis aktuelles Datum.

Chemiker 26. Jul 2022 09:37

AW: Locate DateField
 
Ich setzte dafür die Funktion LocateEX ein:

Delphi-Quellcode:
aDatum := date();
Query1.IndexFieldNames := 'DATUM';
 SuchOptionen:= [lxNearest];
Query1.LocateEX aDatum, 'DATUM', SuchOptionen);
Bis bald Chemiker

himitsu 26. Jul 2022 10:15

AW: Locate DateField
 
Zitat:

LocateEx
Im FireDAC?
Zitat:

lxoCaseInsensitive, lxoPartialKey, lxoFromCurrent, lxoBackward, lxoCheckOnly, lxoNoFetchAll
Joar, z.B. bei Devart (AnyDAC/PgDAC/EntityDAC/...) ginge es.

Uwe Raabe 26. Jul 2022 10:26

AW: Locate DateField
 
FindNearest wäre vielleicht geeignet. Dazu muss aber der Index passend gesetzt sein.

Thomas Feichtner 27. Jul 2022 15:58

AW: Locate DateField
 
Hallo zusammen,

mit FindNearest funktioniert es so wie ich will.

Danke für eure Hilfe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:39 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