[ TheBatA @ 30.01.2007. 00:10 ] @
Čitav dan mučim muku sa jednim prostim upitom, ali on i dalje neće da radi, koliko god da prostački izgleda!

Evo ga i problem:
upit.CommandText = "SELECT br FROM Racun WHERE DatumFakture < " +početniDatum+ ";";

početniDatum se prosleđuje proceduri kao varijabla tipa DateTime i to iz DateTimePicker-a.


Kada napišem tako, dobijam grešku:
"Syntax error (missing operator) in query expression 'DatumFakture < 30.1.2007 0:41:29'."

Ako dodam apostrofe ispred i iza datuma, onda dobijam sledeću grešku:
"Data type mismatch in criteria expression."
(Kada stavim Watch na upit.CommandText on ima vrednost "SELECT br FROM Racun WHERE DatumFakture < '30.1.2007 0:41:29';")

Onda sam tražeći po forumu odgovore naišao na predlog da se stavi # ispred i iza datuma, ali i onda mi prijavljuje grešku:
"Syntax error in date in query expression 'DatumFakture < #30.1.2007 0:41:29#'."

Probao sam i sa navodnicima ispred i iza #, ali opet ne radi!!!

Inače, u bazi (Access) mi je polje tipa Date/Time, formata Short Date. Probao sam da stavim i long date, ali ne pomaže.

Onda sam pokušao i sa DateTime.Parse(početniDatum) - ne funkcioniše
Convert.ToDateTime(početniDatum.toShortDateString()) - syntax error

Pokušao sam i da postavim DateTimePicker.CustomFormat na "dd.mm.yyyy" i opet ništa.

Sve u svemu, ako vrednost prosledim kao string, dobijam "Data type mismatch in criteria expression." , a ako prosledim kao datum, javlja se "Syntax error".
Pokušao sam čak i da ugasim pa upalim računar, pa čak i da izađem i uđem ponovo u kuću dok zli duhovi ne odu, ali ne pomaže

Predpostavljam da je neki problem sa formatom datuma, ali ne znam kako treba da ga formatiram da bi funkcionisao!

Pomagajte, ili odoh da izvršim harikiri!
[ goranvuc @ 30.01.2007. 06:23 ] @
Treba da datum formatiras na Accessov "native format": "#MM/dd/yyyy#"
[ aleksandarpopov @ 30.01.2007. 07:44 ] @
Koristi parametre u upitu (parametrized query), zato su izmisljeni bice ti zivot laksi....
Sto se formata tice, nisam siguran da je problem u tome, datum je datum, nebitno od formata, barem je u redovnim serverima tako, za Access ne znam...
Poz
[ west_herc @ 30.01.2007. 07:49 ] @
Ja mislim da ti neće da vrati ništa zato što tvoj upit koji si napisao traži i po vremenu. Jer ti uz datum ide i vrijeme, pa ako se ne poklopi vrijeme nema ni rezultata.
Pokušaj da uradiš casting tog datuma da ti radi bez vremena. Imao sam i ja sličan problem i to sam radio sa datumom.

A još kao što ti rekoše koristi parametre u upitima.

Živio
[ goranvuc @ 30.01.2007. 07:56 ] @
Citat:
aleksandarpopov: Koristi parametre u upitu (parametrized query), zato su izmisljeni bice ti zivot laksi....

Ovo je OK.
Citat:
aleksandarpopov:Sto se formata tice, nisam siguran da je problem u tome, datum je datum, nebitno od formata, barem je u redovnim serverima tako, za Access ne znam...
Jeste problem u tome, formatiranjem na gore opisan nacin izbegava se problem sa razlicitim regionalnim podesavanjima, tj. upiti ce uvek biti ispravni.
[ TheBatA @ 30.01.2007. 11:01 ] @
Citat:
west_herc: Ja mislim da ti neće da vrati ništa zato što tvoj upit koji si napisao traži i po vremenu. Jer ti uz datum ide i vrijeme, pa ako se ne poklopi vrijeme nema ni rezultata.
Pokušaj da uradiš casting tog datuma da ti radi bez vremena. Imao sam i ja sličan problem i to sam radio sa datumom.

A još kao što ti rekoše koristi parametre u upitima.

Živio


Ne znam zašto ne bi vratio ništa? Svaki datum u bazi koji je manji za npr. 1 dan od datuma u upitu biće manji od datuma u upitu, bez obzira da li je dat sa vremenom ili bez, zar ne?

Citat:
aleksandarpopov: Koristi parametre u upitu (parametrized query), zato su izmisljeni bice ti zivot laksi....


E, ovo si dobro rekao Radi bez problema!


Hvala svima na pomoći!