Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Suche nach 2 Feldern in DB (https://www.delphipraxis.net/93416-suche-nach-2-feldern-db.html)

Zaebos 5. Jun 2007 17:36

Datenbank: DBase • Zugriff über: ODBC

Suche nach 2 Feldern in DB
 
Hallo zusammen!!

Gerade neu und schon mit Fragen bombardieren.... SRY!.
Also, folgende Frage:

Ich habe eine dbase-DB mit einem Datumsfeld und einem Zeitfeld (Datumsfeld in Form 'dd.mm.yyyy' und Zeitfeld in Form 'hhmm').

Gibt es eine Anweisung, mit der ich innerhalb der DB nach einem Datensatz suchen kann, der:

- Vom Datum her kleiner oder gleich dem aktuellen Datum ist
UND
- die Zeit kleiner oder gleich der aktuellen Zeit ist,

wodurch mir dieser evtl. vorhandene Datensatz angezeigt wird? Falls der Datensatz nicht verfügbar sein soll (in der Zukunft liegt und keine älteren Datensätze mehr vorhanden sind) soll eine Fehlermeldung erscheinen.

Habe bereits mit Table1.Locate herumgetüftelt, erziele jedoch kein Ergebnis mit 2 Feldern, höchstens mit einem. Geht das überhaupt? Und wenn ja wäre natürlich die Frage WIE....

Ich danke euch schonmal für eure Ideen. (Muss mich entschuldingen. Bin halt nochn kleiner Anfänger).

mkinzler 5. Jun 2007 17:37

Re: Suche nach 2 Feldern in DB
 
Locate geht auch mit mehreren Feldern Oder besser per SQL

Zaebos 5. Jun 2007 17:45

Re: Suche nach 2 Feldern in DB
 
ja. stimmt. war ich wohl zu schnell. NUR: Wie schaffe ich es auch wirklich nach einem Datensatz zu suchen, der nicht größer als 'now' ist bzw. größer als die aktuelle zeit und dem aktuellen Datum....???

mkinzler 5. Jun 2007 17:46

Re: Suche nach 2 Feldern in DB
 
SQL-Code:
select ... where datum between <a> and [b] and zeit between <c> and <d>;

Captnemo 5. Jun 2007 18:05

Re: Suche nach 2 Feldern in DB
 
Zitat:

Zitat von mkinzler
SQL-Code:
select ... where datum between <a> and [b] and zeit between <c> and <d>;

Und je nach verwendeter SQL-Engine kannst du natürlich anstelle von <a> bzw [b] auch TODAY() oder bei <c> bzw <d> NOW() einsetzen. Den genauen Syntax kann man ja nachlesen. Hat den Vorteil, dass man den Datum / Zeitwert nicht innerhalb von Delphi erstellen muß.
Und zusätzlich kann SQL dann auch noch Rechnen. z.B: TODAY()-1 oder so.....

Einfach mal ein bischen nachschlagen...

Zaebos 5. Jun 2007 19:04

Re: Suche nach 2 Feldern in DB
 
Hmmm. Das wäre ja praktisch. Wie müsste denn die Formatierung von Datum und Zeit aussehen? Also ich habe Exportbedingt folgendes:

Datum:= "dd.mm.yyyy"
Zeit:= "hhmm"

Mein SQLString würde meiner Meinung nach dann etwa so aussehen???:

SQL-Code:
SELECT DATUM,ZEIT FROM DB WHERE DATUM BETWEEN "01.01.1999" AND '''+FormatDateTime('mm.dd.yyyy', now)+''' AND ZEIT BETWEEN "0000" AND '''+FormatDateTime('hhmm', now)+'''
Oder eher:

SQL-Code:
SELECT DATUM,ZEIT FROM DB WHERE DATUM BETWEEN "01.01.1999" AND TODAY() AND ZEIT BETWEEN "0000" AND NOW()

Zaebos 5. Jun 2007 19:31

Re: Suche nach 2 Feldern in DB
 
???

Captnemo 5. Jun 2007 19:57

Re: Suche nach 2 Feldern in DB
 
Also dazu müßtest du dann erstmal kund tun, welche Engine du benutzt. BDE, oder...?

Desweiteren ist dein zweiter String schon ganz gut. Wobei ich nicht glaube das du zwar Trennzeichen (.) beim Datum hast, aber keines bei der Zeit? Und wenn die Zeit explizit angibst, dann würde ich auch die Sekunden mit angeben ("00:00:00").
Und zusätzlich setze ich dann die Between-Clauseln einzeln noch in Klammern, was ich wohl aber nur aus gründen meiner persönlichen Übersichtlichkeit tue.

Aber den letztendlichen Syntax mußt der Anleitung deiner Engine entnehmen. Bei MDB ist das teilweise anders als bei MySQL und bei BDE (weiß ich aber jetzt aus dem Kopf nicht so genau. Ich arbeite immer nur mit MySQL).

Aber probiers doch einfach mal aus? ;-)

Vielleicht hast du ja auch eine SQL-Query-Prog, mit dem du den Syntax solange bearbeitest, bis er funktioniert? Oder du machst dir so ein Query-prog eben schnell selbst.

Zaebos 5. Jun 2007 20:33

Re: Suche nach 2 Feldern in DB
 
Jau. Läuft ^^ Vielen Dank für eure Hilfe. Echt cool so. Darauf kann ich aufbauen. Danke Danke

Zaebos 5. Jun 2007 21:18

Re: Suche nach 2 Feldern in DB
 
Achja. Wie kann ich denn ne Fehlermeldung ausspucken, wenn er keinen passenden Datensatz findet???


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:25 Uhr.
Seite 1 von 2  1 2      

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