Форум: "Базы";
Текущий архив: 2004.06.13;
Скачать: [xml.tar.bz2];
ВнизТраблы с ADOQuery, помогите плиз Найти похожие ветки
← →
pashaz © (2004-05-23 20:10) [0]Нужно: узнать значение последней записи определённого поля в базе на дату сегодня - 1 (то есть вчера).
Пишу:
with ADOQuery1 do
begin
Active:=False;
SQL.Clear;
SQL.Add("select inv from return where today = :prev");
ParamCheck:=True;
Parameters.ParamByName("prev").Value:=IncDay(Now, -1);
Open;
Last;
end;
Label31.Caption:=ADOQuery1.Fields[0].AsString;
И ничего не получаю (записи точно есть.)
← →
Vlad © (2004-05-23 20:15) [1]Сорри, а что такое IncDay ?
может так:Parameters.ParamByName("prev").Value := (Date - 1);
← →
pashaz © (2004-05-23 20:18) [2]Returns a date shifted by a specified number of days.
Unit
DateUtils
Category
date/time routines
function IncDay(const AValue: TDateTime; const ANumberOfDays: Integer = 1): TDateTime;
Description
IncDay returns the value of the AValue parameter, incremented by ANumberOfDays days. ANumberOfDays can be negative, to return a date N days previous.
The time of day specified by the AValue parameter is copied to the result.
← →
Vlad © (2004-05-23 20:20) [3]
> pashaz © (23.05.04 20:18) [2]
Это наверное в D6 только появилось, а у меня D5
Ну ладно.
Скорее всего проблема в том, что ты передаешь дату со временем, то есть нужно отрезать время.
Для этого либо используй вариант Vlad © (23.05.04 20:15) [1]
либо trunc(IncDay(Now, -1))
← →
pashaz © (2004-05-23 20:25) [4]Trunc(IncDay(Now-1)) - не работает ((
"Data type mismatch in criteria expression"
← →
Vlad © (2004-05-23 20:28) [5]
> pashaz © (23.05.04 20:25) [4]
Согласно твоему примеру из хелпа должен работать !
Правда не так:
> Trunc(IncDay(Now-1)) - не работает ((
а так:
> trunc(IncDay(Now, -1))
← →
pashaz © (2004-05-23 20:30) [6]да ето я ошибся. пишу trunc(IncDay(Now, -1)). выдаёт ошибку
← →
pashaz © (2004-05-23 20:32) [7]Но что характерно, написал
Label29.Caption:=DateToStr(IncDay(Now, -1));
и действительно получаю 22.05.2004 Вообще ничего не понимаю
← →
Vlad © (2004-05-23 20:35) [8]
> pashaz © (23.05.04 20:30) [6]
1) Вариант Vlad © (23.05.04 20:15) [1] пробовал ?
2) Приведи полный код, чушь какая-то, не могет такого быть.
← →
pashaz © (2004-05-23 20:43) [9]Пробовал. "Data type mismatch in criteria expression"
procedure TForm2.LMDButtonBar1SectionChanged(Sender: TObject;
CurrentSection, OldSection: Integer);
begin
if CurrentSection=2 then
begin
LMDPanelFill2.Hide;
LMDPanelFill3.Hide;
LMDPanelFill5.Show;
LMDPanelFill4.Hide;
LMDPanelFill1.Hide;
LMDMaskEdit3.Text:=DateToStr(Now);
with ADOQuery1 do
begin
Active:=False;
SQL.Clear;
SQL.Add("select inv from return where today = :prev");
ParamCheck:=True;
Parameters.ParamByName("prev").Value:=IncDay(Now, -1);
Open;
Last;
end;
// Label31.Caption:=FloatToStr(ADOQuery1.Fields[0].AsFloat);
Label31.Caption:=ADOQuery1.Fields[0].AsString;
Label29.Caption:=DateToStr(IncDay(Now, -1));
with ADODataSet7 do
begin
Close;
CommandType:=cmdText;
CommandText:="select * from return where today= :temp";
Parameters.ParamByName("temp").Value:=StrToDate(LMDMaskEdit3.Text);
Open;
end;
end;
end;
← →
Anatoly Podgoretsky © (2004-05-23 20:46) [10]Ты что именно так и хранишь, с точностью до миллисекунд?
Now именно такое
← →
Vlad © (2004-05-23 20:48) [11]
> pashaz © (23.05.04 20:43) [9]
1) Еще раз спрашиваю, пробовал ли ты вариант Vlad © (23.05.04 20:15) [1]
2) Ну и в какой же строчке в приведенном коде возникает ошибка ?
← →
pashaz © (2004-05-23 20:49) [12]Действительно, спасибо.
написал Parameters.ParamByName("prev").Value:=IncDay(Date, -1);
всё заработало.
← →
pashaz © (2004-05-23 20:50) [13]to Vlad
Пробовал.
ощибка возникает при выполнении запроса.
← →
Vlad © (2004-05-23 20:52) [14]
> pashaz © (23.05.04 20:50) [13]
> to Vlad
>
> Пробовал.
>
> ощибка возникает при выполнении запроса.
мистика
← →
sniknik © (2004-05-23 23:08) [15]> Нужно: узнать значение последней записи определённого поля в базе на дату сегодня - 1 (то есть вчера).
SQL.Add(
"select top 1 inv from return where today between Date()-1 and Date() order by today desc"
);
запрос именно на то что требуется, последняя запись на вчера, с условием что в today вносилось значение detetime, а не чистая дата тогда неопределено.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.06.13;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.029 c