Sziasztok!
Már többször is kisegített a Hup társadalom a slamasztikából, remélem most is így lesz.
Adva van egy kis adatbázis, egy Delphi XE3-ban fejlesztendő kis program, illetve egy AIX-Linux admin, aki valaha delphizett és nosztalgiázni támadt kedve.
Firedac komponenssel kezeli a mysql adatbázist a kis program, és szeretném egy gombnyomással lekérdezni egy adott időintervallum között felvett szerszámok listáját a 'szerszam' táblából, amit aztán szeretném megjeleníteni egy dbgrid-be, de az istenért nem hajlandó firedac-al lefutni a query, ami nem lenne más mint:
form3.query1.sql.Clear;
form3.Query1.SQL.Add('select * from szerszam where datum BETWEEN '''+datetostr(dtp1.datetime)+''' and '''+datetostr(dtp2.datetime)+''' ' );
form3.Query1.Open;
(a dtp1 és dtp2 DateTimePicker komponensek)
Kiszedtem belőle, hogy mit akar futtatni szövegként, amit ha lefuttatok konzolból, vagy phpmyadminból, akkor megkapom az eredményt, de a dbgridbe csak olyan rekordokat kapok vissza, ahol szándékosan nem lett megadva a datum mezőbe semmi.
"SELECT * FROM szerszam where datum between '2007-01-01' and '2016-12-29'"
Arra jutottam, hogy a firedac semmilyen dátummal kapcsolatos műveletet nem hajlandó végrehajtani, se insert into, se update, se select.
Valaki találkozott hasonlóval? E programnak az elődje Delphi 2007-ben lett megírva, ott minden tökéletesen működik, de itt sehogy sem akar menni.
Köszi előre is!
Megoldva: Köszönöm a válaszokat, végül megtaláltam mi a megoldást, ami FormatDateTime nevű jóság. Hogy nyalnám meg a fülét, amelyik a jól bevált módszerhez hozzányúlt. Na mindegy, végül jó lett.
adate:= now;
fdquery3.sql.Clear;
fdquery3.SQL.Add('select * from szerszam where datum BETWEEN '''+FormatDateTime('yyyy-mm-dd', dtp1.Date)+''' and '''+FormatDateTime('yyyy-mm-dd', dtp2.Date)+''' ' );
fdquery3.open;