Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поле


Страницы:   1 2

Shved ©   (2002-12-02 13:12:00) 

Имеется таблица. Формирую SQL, чтобы произошла выборка интервала времени, в таком виде:

FirstDay:=Edit1.Text;
SecondDay:=Edit2.Text;
Form1.Query.Close;
Form1.Query.SQL.Clear;
Form1.Query.SQL.Add("select *");
Form1.Query.SQL.Add("FROM "BDAuto.DB" Bdauto");
Form1.Query.SQL.Add("WHERE "DAY" BETWEEN "+FirstDay+" and "+SecondDay);
Form1.Query.Open;
Form1.DBGrid1.DataSource:=Form1.DataSource2;


FirstDay и SecondDay в виде ДД.ММ.ГГ (текст), но при запуске программы вылезает ошибка "Invalid use of keyword "02"" (это год).
Что я не так делаю?
И вообще, в Delphi можно поставить полю атрибут D или @. Оба имеют формат даты, но чем они различаются (только временем?) и почемуо в примерах Delphi используется только формат "@"?
Вобщем, какой формат посоветуете. господа профессионалы и какой формат запроса должен быть?


Max Zyuzin   (2002-12-02 14:48:00) [21]

А где именно выдает ошибку???
Query.ParamByName("FirstDay").AsDate := StrToDate(FirstDay);
Здесь?


Shved   (2002-12-02 14:40:00) [22]

Все равно не помогает. Присваивал переменным FirstDay и SecondDay разные значения: DD.MM.YY, DD.MM.YYYY, DD.MM. Ошибка всегда одна и та же. В системе стоит формат DD.MM.YY.
Может быть, есть другой способ выборки по дате? Если у кого есть - киньте кусок кода, пожалуйста. Ну а если нет, то хоть подсоветуйте...


Max Zyuzin   (2002-12-02 14:34:00) [23]

Ну вообще то, формат должен быть такой как в системе...


Shved   (2002-12-02 14:32:00) [24]

А тот код, что вы предложили - не работает. Пишет, что неправильный формат даты. Какой формат должен быть, если атрибут поля "D", а формат записей в поле DD.MM.YY?


Shved   (2002-12-02 14:15:00) [25]

Спасибо. А по поводу форматов "D" и "@" что скажете? Что лучше и почему?


ЮЮ   (2002-12-02 13:21:00) [26]

Если пихать дату непосредственно в запрос, то, ао синтаксису, она должна быть обрамлена кавычками. А чтобы не зависеть от формата даты, лучше использовать в запросе параметры


Max Zyuzin   (2002-12-02 13:20:00) [27]

Значения надо взять в кавычки... в твоем случае это выглядит так...
Form1.Query.SQL.Add("WHERE "DAY" BETWEEN """+FirstDay+""" and """+SecondDay+""");
Это все одинарные кавычки... но ИМХО лучше сделать так...

Form1.Query.Close;
Form1.Query.SQL.Clear;
Form1.Query.SQL.Add("select *");
Form1.Query.SQL.Add("FROM "BDAuto.DB" Bdauto");
Form1.Query.SQL.Add("WHERE "DAY" BETWEEN :FirstDay and :SecondDay");
try
Query.ParamByName("FirstDay").AsDate := StrToDate(FirstDay);
Query.ParamByName("SecondDay").AsDate := StrToDate(SecondDay);
except
/// Хреновая дата....
end;
Form1.Query.Open;



Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо