Da das ja eine starre Abfrage zu sein scheint (immer 5 Tage Vorschau) dann würde ich da nicht mit Parametern arbeiten sondern mit einem reinen
SQL-Statement, das wenn nötig zusätzlich das Datum von einem String in ein Datum umwandelt, also:
SQL-Code:
SELECT * FROM Print_Auftrag WHERE ConvertiereInDatum(Fertig) BETWEEN CURDATE() AND CURDATE()+5
"ConvertiereInDatum" steht für eine entsprechende Funktion deiner Datenbank, konnte jetzt nicht finden, was ihr einsetzt. Könnte z.B. "Convert" in MS
SQL sein, TO_DATE in Oracle, usw.
Dann würde ich mir das ganze geraffel mit den Variablen schenken, da die eh nur aus einem Buchstaben bestehen, der nix erklärt hat das keinen Mehrwert. Wenn man das "With" mal drin läßt, fände ich sowas lesbarer:
Delphi-Quellcode:
with ListView1.Items.Add do begin
Caption:=SQLQuery1.FieldByName('ID').AsString;
SubItems.Add(SQLQuery1.FieldByName('Irgendwas').AsString);
//usw.
Und last but not least würde ich für so eine "abgeschlossene" Funktion nicht eine
Query verwenden, die ich eh gerade auf dem Form rumliegen habe und so wieder verwende sondern ich würde mir innerhalb der Prozedur eine
Query erzeugen,
SQL zuweisen, ausführen,
Query wieder freigeben.
OK. die Variablen sind schon draußen.
Ich verwende eine MariaDB 10
Für die MariaDB ist die Konvertierung TO_DATE oder STR_TO_DATE.
In den ganzen Beispielen ist das Str Datum aber anderst getrennt (05-03-2020) bei mir ist es aber durch Punkte getrennt.
Ich glaube es führt kein weg vorbei das Format auf Date zu stellen.
Dazu in phpMyAdmin einfach das Format für die Spalte ändern? Und meinen Code anpassen ?
Momentan setze ich mit einem DateTimePicker das Datum in ein Edit Feld und schreib dieses dann in die Datenbank.
Das System selber programmier ich bereits seit 2 Jahren.
Die Datenbank enthält 6000 Aufträge. Daher sollte es halbwegs reibungslos funktionieren.