Форум: "Базы";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];
Внизstring conversion error Найти похожие ветки
← →
Maxim_____ (2004-09-29 11:01) [0]пишу:
select * from zakazes where (DATASDACHI >= "01.10.2004") and (DATASDACHI <= "31.10.2004")
-всё ок
пишу:
select * from zakazes where (DATASDACHI >= "01.09.2004") and (DATASDACHI <= "31.09.2004")
получаю string conversion error
(и в дельфи м в ibexpert - один результат)
← →
Наталия © (2004-09-29 11:02) [1]Потому что нет такого числа 31.09.2004
← →
Romkin © (2004-09-29 11:03) [2]И что? Посылают тебя. Ты бы еще 31 февраля заказал...
← →
Maxim_____ (2004-09-29 11:33) [3]ок, т.е для каждого месяца мне надо писать отдельную процедуру?
какое ему дело сколько где дней?
как ещё можно получить все дни месяца?
← →
Romkin © (2004-09-29 11:35) [4]А ты параметры используй. params видел?
← →
Romkin © (2004-09-29 11:36) [5]А последний день месяца получить легко: взять первый день следующего и вычесть один день. Всегда и везде проходит :))
← →
Maxim_____ (2004-09-29 11:39) [6]я пишу treeView:
mainDb.Open;
dsOrders.Active := true;
str := tstringlist.Create;
dsOrders.First;
str.Sorted := true;
str.Duplicates := dupIgnore;
while not dsOrders.Eof do begin
DateTimeToString(s, "mm.yyyy", dsOrdersDATASDACHI.Value);
was := str.Count;
str.Add(s);
if str.Count - was = 1 then begin
currentMY := tv.Items.Add(tv.TopItem, str.strings[str.count - 1]);
currentMY.ImageIndex := 0;
end;
dsOrders.Next;
end;
for i := 0 to tv.Items.Count do begin
if tv.Items[i].Level = 0 then
begin
dsOrders.Close;
MonthYear:=tv.Items[i].Text;
dsOrders.SelectSQL.text :=" select * from zakazes where (DATASDACHI >= "+QuotedStr("01."+MonthYear)+") and (DATASDACHI <= "+QuotedStr("31."+"09.2004")+")";
dsOrders.open;
dsOrders.First;
while not dsOrders.Eof do begin
DateTimeToString(s, "dd", dsOrdersDATASDACHI.Value);
tv.Items.AddChild(tv.Items[i], s);
dsOrders.Next;
end;
end;
end;
может всё это бред
и есть более простой способ,
с помощью sql сделать всё это?
← →
Vlad © (2004-09-29 11:47) [7]
> Maxim_____ (29.09.04 11:39) [6]
Еще раз - ты про параметры в SQL запросах слышал?
ну на худой конец пиши не так:(DATASDACHI <= "+QuotedStr("31."+"09.2004")+.....
а так:(DATASDACHI < "+QuotedStr("01."+"10.2004")+.....
уж первое-то число у любого месяца существует
← →
Maxim_____ (2004-09-29 11:48) [8]dsOrders.SelectSQL.text :="select * from zakazes where (datasdachi >=" +QuotedStr("01."+ tv.Items[i].Text)
+") and (datasdachi <= "+quotedstr("31." + tv.Items[i].Text)+")";
тут я не неправильную версию бросил, извините,
просто заклинило что-то уже.
всю ночь сижу. и потому забыл про то что в сентябре меньше дней, решил что этоглюк FB
← →
stud © (2004-09-29 11:49) [9]а последнее число - daysinmonth - unit datautils
и лучше всетаки как тебе говорят использовать параметры:
DATASDACHI between :d1 and :d2
← →
Maxim_____ (2004-09-29 11:51) [10]слышал краем уха, что это пишется как-то так:
=:
но что мне толку от них?
объясните пожалуйста.
← →
Maxim_____ (2004-09-29 11:55) [11]Спасибо всем!
Пойду искать по сети
что-нибудь про параметры,
в какие компоненты их сувать,
и т.п.
← →
Romkin © (2004-09-29 12:50) [12]А в каталог Demos не судьба глянуть?
← →
Maxim_____ (2004-10-01 05:30) [13]Romkin © (29.09.04 12:50) [12]
там очень много всего, куда именно предлагаете заглянуть?
.....
код неправильный и вообще позорный, забудьте про него
← →
kaif © (2004-10-01 13:15) [14]Дату следует передавать параметром, чтобы не зависеть от региональных настроек даты. Это правильный путь. Но есть и простой способ, если хочется дату указать явно в тексте запроса:
select * from zakazes where (DATASDACHI >= "2004-09-01") and (DATASDACHI <= "2004-09-31").
Однако сдается мне, что такой даты, как 31 сентября не бывает. Поэтому это работать не будет ни при каком подходе. Предлагаю гораздо более простое решение (если в лом разбираться с тем, какие даты бывают, а какие - нет)
select * from zakazes where (DATASDACHI >= "2004-09-01") and (DATASDACHI < "2004-10-01")
То есть брать в качестве правой даты не конец месяца, а начало следующего, а вместо "меньше или равно" использовать условие "меньше".
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.035 c