Pre nego sto sam se javio za pomoc, probao sam sve moguce kombinacije:
adoQuery2.SQL.Text:= 'SELECT * FROM TABELA '+
'WHERE TABELA.DATUM< '+''''+FormatDatetime('dd.mm.yyyy hh:nn:ss',now)+'''';
.. i sve varijacije formatiranja datuma, uvek izbaci gresku "Data type mismatch in criteria expression ". Ne znam u cemu gresim:(
Napravi upit u bazi, koju koristiš, i posle preseli isti format datuma u Delphi... Pokušaj tako... Ako ne bude išlo, reci nam koja baza je u pitanju, i daj nam upit koji ti radi u bazi.
> Pre nego sto sam se javio za pomoc, probao sam sve moguce kombinacije:
> . i sve varijacije formatiranja datuma, uvek izbaci gresku "Data type mismatch in criteria expression ". Ne znam u cemu gresim:(
Moraš saznati u kom formatu ta baza očekuje datum (YYYY-MM-DD; DD-MMM-YYYY; DD/MM/YY itd.)
Ili još lakše koristi parametre:
Query.Sql := 'SELECT * FROM TABELA WHERE DATUM < :Date';
Query.Prepare;
Query.Parmas[0].AsDateTime := Now;
Query.Open;
Upit pri startu programa koji radi OK:
adoquery.SQL.Text:='SELECT * FROM TABELA ORDER BY DATUM DESC'
Ovakav upit sortira podatke po datumu i vremenu.
Baza je Access *.mdb, komponente standardne TADOQuery i TAdoConnection,delphi 2009
Access je malo striktan po određenim pitanjima, upit, mislim, mora da izgleda tačno ovako:
Code:
SELECT Table1.test
FROM Table1
WHERE (((Table1.test)=#11/11/2009#));
Znači, uslov za datum mora da bude tačno u datom obliku, nisam probao iz Delphi - a, trenutno, pretpostavljam da kad bi "ručno" kreirao SQL upit i ubacio ga u query da bi skoro sigurno radilo, ali preko parametara, nisam siguran kako...