AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Locate mit Datumsfeld
Thema durchsuchen
Ansicht
Themen-Optionen

Locate mit Datumsfeld

Ein Thema von Thomas Feichtner · begonnen am 8. Sep 2011 · letzter Beitrag vom 9. Sep 2011
Antwort Antwort
Seite 1 von 2  1 2      
Thomas Feichtner

Registriert seit: 30. Nov 2007
Ort: Rum
137 Beiträge
 
Delphi 10.4 Sydney
 
#1

Locate mit Datumsfeld

  Alt 8. Sep 2011, 15:04
Datenbank: ADS • Version: 10 • Zugriff über: native
Hallo,

ich habe einer Tabelle Feiertage.
Folgende Werte habe ich drinnen.

15.08.2011
01.11.2011
natürlich sind davor und danach auch noch werte daber für mein Problem nicht relevant.

Wenn ich nun ein Locate mache findet er nichts
Delphi-Quellcode:
  if dsFeiertag.Locate('paft_datum', SysUtils.Date, [loCaseInsensitive, loPartialKey]) then
      ShowMessage('Datum: ' + FormatDateTime('dd.mm.yyyy', dsFeiertage.FieldByName('part_datum').AsDateTime));
was kann ich machen, dass er sich in die nähe eines dieses Datums positioniert?
mfg

Thomas Feichtner
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Locate mit Datumsfeld

  Alt 8. Sep 2011, 15:17
Welchen Typ hat das Datenbankfeld?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Locate mit Datumsfeld

  Alt 8. Sep 2011, 16:10
Wenn Du nach dem Tagesdatum (sysutils.date) suchst wird er ja keinen Treffer finden können, da heute weder der 15.08. noch der 1.11. ist. Und womit sind die unterschiedlichen Felder paft_datum und part_datum gefüllt?
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Thomas Feichtner

Registriert seit: 30. Nov 2007
Ort: Rum
137 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Locate mit Datumsfeld

  Alt 8. Sep 2011, 16:10
Das Feld ist vom Typ Date und es ist ein ADT-Tabelle
mfg

Thomas Feichtner
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Locate mit Datumsfeld

  Alt 8. Sep 2011, 16:15
Aber mit Locate wirst Du da nicht weiter kommen. Verwende lieber SQL. Und definier mal die Aufgabenstellung genauer. Z.b. "Herausfinden welche Feiertage in der Tabelle zwischen heute und nächster Woche liegen" oder so was.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Thomas Feichtner

Registriert seit: 30. Nov 2007
Ort: Rum
137 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Locate mit Datumsfeld

  Alt 9. Sep 2011, 06:34
OK, dann muss ich einen Anderen Weg gehen.
Werde mir einen SQL basteln um auf den nächsten Datensatz zu kommen.

Ich dachte nur mit loPartialKey positioniert er sich in auf einen von beiden Datensätzen wenn er den gewünschten nicht findet.

Funktioniert dann die Option überhaupt mit Datumswerten bzw. Zahlen?
mfg

Thomas Feichtner

Geändert von Thomas Feichtner ( 9. Sep 2011 um 06:36 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: Locate mit Datumsfeld

  Alt 9. Sep 2011, 08:58
Das glaub ich nicht Tim^^

Hier mal ein SQL, das den nächsten Feiertag ab Tagesdatum holt:

Code:
select min(Feiertag) from Feiertage where Feiertag >= (select curdate() from system.iota)
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#8

AW: Locate mit Datumsfeld

  Alt 9. Sep 2011, 09:27
Eine Abfrage über die "absoluten Differenzen" der Datumswerte (abs(curdate() - part_datum) ), das sortiert nach aufsteigender Größe und davon dann den ersten Absatz, also den mit dem (kleinsten) Wert.

Das würde dann den nächstliegenden Feiertag bringen.



Oder alle zukünftigen Feiertage, wobei man hier die vergangenen ignoriert und sich aufsteigend ebenfalls den ersten Absatz rauszieht, welcher dann Heute oder als nächstes kommt.




Problem wird hierbei aber der Jahreswechsel sein, welche man mit berücksichtigen müßte.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#9

AW: Locate mit Datumsfeld

  Alt 9. Sep 2011, 10:11
Wieso Abs()? Das würde doch auch vergangene Feiertage ins Spiel bringen oder?
Das Select aus Post 7 ist doch ok, vielleicht noch ein SORT by dazu.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Locate mit Datumsfeld

  Alt 9. Sep 2011, 10:12
Wieso sortieren? Das SQL sollte doch nur einen Datensatz liefern.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11: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