problem z konwersja

0

witam
aplikacja napisana w delphi (odpalana na xp prof)
serwer w2k3 + sql 2000

i problemik - gdy program uruchamiany jest i nastepuje odswiezenie grida
i wystepuje warunek w zapytaniu

...
data between '''+dateToStr(DateTimePicker5.Date)+''' and '''+dateToStr(DateTimePicker6.Date)
...

pojawia sie komunikat
the conversion of a char data type to a datatime data type resulted in an out-of-range datetime value

na sql pole "data" - datetime (8)
prosze o pomoc
dziekuje i pozdraiwam

0

użyj parametrów

0

:) dzieki - a w jaki sposób to mogę uczynic?

podejzewam ze data between @data1 and @data2

a jak mam zapodac data1 i2?

0

nie wiem, czego urzywasz ale zobacz coś takiego
query.ParamByName('data1').AsDate := Data;

0

hmm
chyba udalo mi sie obczaic dlaczego tak sie dzieje
nastepuje blad podczas konwersji daty na string

i np na koncie admina odpalam program
po konwersji daty DateToStr - -> formatuje mi date tak yyyy/mm/dd

a gdyodpalam na zwyklym koncie program
po konwersji daty DateToStr - -> formatuje mi date tak yyyy/dd/mm

w przypadku gdy - wpisana jest data do datepickera - jako 2006-08-23 - dla admina tak jak widac a dla zwyklego usera formatuje 2006-23-08 - i tym samym wylazi poza obszar - bo nie ma 23 miesiaca

i w zwiazku z tym moje pytanie - czy da sie za pomoca funkcji DateToStr zapodac w jakim formacie ma podac date? zeby zawsze robil yyyy/mm/dd?

pozdr

0

nie możesz zrobić tak jak ci napisałem??? A jak na innym kompie będzie formatowało jeszcze inaczej to co zrobisz??

0

dzieki za pomoc - bardzo sie przydaje jak zwykle

  • oczywisice ze tak zrobilem
  • przy okazji zapodalem jesszcze w object inspektorze format daty yyyy-MM-dd i to wystarczy bez parametryzacji - sprawdzalem

jeszcze wypadaloby zminic format daty jak pobieram w kodzie poprzez +DateToStr(Date)+

pozdraiwam

0

ehh problem znowu powrocil - nie ma juz pomyslu co i w jaki sposob pozbyc sie problemu z tymi datami
robie w nastepujacy sposob:

var par1:string
....
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('INSERT INTO obecnosc (id_oddz,data) VALUES ('''+id_oddz+''',:par1);');
          ADOQuery1.Parameters.ParamByName('par1').value:=datetimepicker3.Date;
          ADOQuery1.ExecSQL;

tak jak wczesniej pisales query.ParamByName('par1').asdate - nie dziala

pomocy

0

a AsDateTime :>

0

nie tez enima takiej opcji

1 użytkowników online, w tym zalogowanych: 0, gości: 1