Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 11 odgovora
  • 2.960 pregleda

Najnovija ↓

Dodavanje SQL upita iz delphi koda 28.11.2017. u 18:02 · pre 108 meseci #1
Pozdrav svima,
Koristim Delphi 2010 i firebird 2.5 bazu podataka.
Za kreiranje baze sam koristio IBExpert.
U jednoj od tabela u bazi imam polje datum kome sam dodao tip DATE.

Sada pokusavam da u Delphiju napravim akciju po kojoj ce mi izlistati vrednosti samo od datuma koji izaberem u DateTomePicker ali mi to nikako ne uspeva.
Stalno mi javlja jednu istu gresku: "invalid token. dynamic sql error. sql error code 104" a evo i kako izgleda code:

UnosUgovori.Active:= false;
UnosUgovori.SQLs.SelectSQL.Text:= 'Select * from Ugovori WHERE (UGOVORI.DATUM) =' + DateToStr(DateTimePicker1.Date);
UnosUgovori.Active:= true;

Ako stavim uslov Select * from Ugovori WHERE UGOVORI.DATUM = CURRENT_DATE onda radi kako treba, ali meni treba da odaberem datum za koji cemi prikazivati podatke.

Nadam se da sam bio jasam sa problemom pa ako neko moze da pomogne neka javi
Hvala...
Potpis
salash
Re: Dodavanje SQL upita iz delphi koda 28.11.2017. u 18:12 · pre 108 meseci #3
I ja mislim da je to, ali ne mogu nikakvu gresku da nadjem.
Isti je format datuma, i u bazi i u delphiju (dd.mm.yyyy), shotrdate...
Potpis
salash
Re: Dodavanje SQL upita iz delphi koda 28.11.2017. u 18:48 · pre 108 meseci #5
Ne treba mi odredjeni datum, vec mi treba da mi izdvoji samo vrednosti koje sadrže datum koji je izabran u DateTimePicker-u
Ovo radi ako umesto datuma stavim CURRENT_DATE, ali mi ne trbea to nego ovo što pitam.
Druže, ja da znam kako da treba ne bi pitao...
Hvala u svakom slučaju.
Potpis
salash
Re: Dodavanje SQL upita iz delphi koda 28.11.2017. u 18:50 · pre 108 meseci #6
Firebird koristi odredjene fiksne formate datuma, pogledaj https://firebirdsql.org/en/firebird-date-literals/ za detalje.
Za tvoj slucaj najbolje da koristis parametrizovane kverije gde datum navodis kao datum, npr:

Code:

  qry.Sql := 'select * from TableA where DateField >= :FromDate';
  qry.Prepare;
  qry.Params[0].AsDateTime := Now;
  qry.ExecSql;


Ako hoces dosadasnji pristup onda koristi FormatDateTime umesto DateToStr, npr FormatDateTime('DD.MM.YYYY', Date);

Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Dodavanje SQL upita iz delphi koda 28.11.2017. u 19:00 · pre 108 meseci #7
Suština je u tome da mi u tabeli izlista samo vrednosti za datume koje ja odaberem, a to biram u DateTimePicker.
FormatDateTime('DD.MM.YYYY', Date) - ovo mi daje istu gresku a i svakako ne mogu da biram datum :(
Potpis
salash
Re: Dodavanje SQL upita iz delphi koda 28.11.2017. u 19:17 · pre 108 meseci #8
Ajde, sada lepo ponovo pročitaj šta sam ti ja napisao i šta ti je savkic napisao.

Ako ti i posle toga nije jasno, ispiši sadržaj
UnosUgovori.SQLs.SelectSQL.Text
pa vidi da li ti je datum uokviren jednostrukim znacima navoda.

Pa onda probaj da umesto Now u
qry.Params[0].AsDateTime := Now;

staviš sadržaj
DateTimePicker1.Date
Re: Dodavanje SQL upita iz delphi koda 28.11.2017. u 20:30 · pre 108 meseci
izmenjeno 1 put, poslednji put saladinche 28.11.2017. u 20:47
  1. saladinche28.11.2017. u 20:47zapis iz teksta poruke
#9
Umesto AdoQuery koristim FIBPlus i tu mi nema ExecSQL

Proradilo je, evo kako:
UnosUgovori.Active:= false;
UnosUgovori.SQLs.SelectSQL.Text := 'select * from ugovori where DATUM = :FromDate';
UnosUgovori.Prepare;
UnosUgovori.Params[0].AsDateTime := DateTimePicker1.Date;
UnosUgovori.Active:= true;;
Potpis
salash
Re: Dodavanje SQL upita iz delphi koda 30.11.2017. u 15:05 · pre 108 meseci #11
A ovo bi moglo ovako ali nemoj tako neko korsiti parametre.

Code (delphi):
UnosUgovori.SQLs.SelectSQL.Text:= 'Select * from Ugovori WHERE (UGOVORI.DATUM) =' + QuotedStr(DateToStr(DateTimePicker1.Date));
Potpis
F
Re: Dodavanje SQL upita iz delphi koda 02.12.2017. u 08:26 · pre 108 meseci #12
Probao sam ovo ali ne radi.
Code koji sam gore napisao radi super, a ovo sam prvi put pokusao.
Hvala

Citat:
captPicard: A ovo bi moglo ovako ali nemoj tako neko korsiti parametre.

Code (delphi):
UnosUgovori.SQLs.SelectSQL.Text:= 'Select * from Ugovori WHERE (UGOVORI.DATUM) =' + QuotedStr(DateToStr(DateTimePicker1.Date));
Potpis
salash
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme