![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с датой [D6, Paradox]
AJ blacksmith © (2002-05-13 18:39:00)Кто знает, как сравнивать даты выбраные с базы. (простые операторы < > не работают)...
Hrul (2002-05-22 18:36:00) [1]Как верно заметил Reindeer Moss Eater:
"А вообще есть такая вещь как параметрические запросы.
Это если серьезно."
Это примерно так:
var
dt : TDateTime;
begin
Dt := ...
With Query1 do begin
Close;
Clear;
Params.Clear;
SQL.Add("SELECT * FROM TABLE WHERE DT_FIELD = :MYDATE" );
Params.ParamByName("MYDATE").AsDateTime := Dt;
Open;
end;
end;
Во первых, параметрические запросы избавляют от необходимости анализа типа СУБД и соответственно каким образом он хранит в себе даты, а во-вторых даст эффект при работе со String"ми, если внутри нее присутствует символ """. Например, юзер ввел в поле строку "Smit"s".
Желаю удачи.
Turalyon (2002-05-14 10:40:00) [2]>AJ blacksmith
Напиши полныйтекст всего того что ты сделал (в смысле формирования запроса).
Desdechado (2002-05-14 10:20:00) [3]а это уже из области компонентов и никакого отношения к сравнению дат в БД не имеет
Reindeer Moss Eater (2002-05-14 10:16:00) [4]"Переустановить виндоуз и заменить все микросхемы"
AJ blacksmith (2002-05-14 10:00:00) [5]Сделал я через параметрический запрос, а оно все равно ошибку выдает:
You must be in ShowCheckbox mode to set to this date
Что делать?
icu (2002-05-13 20:39:00) [6]Hiya,
"А вообще есть такая вещь как параметрические запросы.
Это если серьезно."
Обрати внимание на это.
Desdechado (2002-05-13 20:25:00) [7]это параметр (во втором случае пропущено двоеточие), а он присваивается As..., как видно из примера Val © (13.05.02 19:06)
но лучше их одинаково не называй и призваивай значения каждому явно.
AJ blacksmith (2002-05-13 19:30:00) [8]
sss:=head+" and main.dat_dog > :MyDate and main.dat_dog < MyDate";
a MyDate какой тип данных?
Val (2002-05-13 19:24:00) [9]#39 значит кавычка одинарная. Вам даты нужно в кавычки взять. Но лучше пользоваться параметрами.
AJ blacksmith (2002-05-13 19:22:00) [10]...нет, ну в SQL-ле можно записать :
...and main.dat_dog > 10.04.02 and main.dat_dog < 10.05.02???????????
а ведь ошибку выдает.....
AJ blacksmith (2002-05-13 19:14:00) [11]а че значит #39?
Reindeer Moss Eater (2002-05-13 19:06:00) [12]А вообще есть такая вещь как параметрические запросы.
Это если серьезно.
Val (2002-05-13 19:06:00) [13]sss:=head+" and main.dat_dog > :MyDate and main.dat_dog < MyDate";
Query.ParamByName(MyDate).AsDateTime:=DateTimePicker2.Date;
Query.Open;
или так:
sss:=head+" and main.dat_dog > "+#39+DateToStr(DateTimePicker2.Date)+#39+" and main.dat_dog < "+#39+DateToStr(DateTimePicker2.Date)+#39+ " ";
Reindeer Moss Eater (2002-05-13 19:05:00) [14]Блеск!
А кавычки вот именно так и расставлены? :)))
"...and main.dat_dog > "+ FormatDateTime("dd.mm.yyyy",DateTimePicker2.Date)
AJ blacksmith (2002-05-13 19:01:00) [15]Ну,че-то типа етого:
sss - окончательний SQL запрос (строковой)
head - начало запроса, типа select....from... (строковой)
sss:=head+" and main.dat_dog > "+DateTimePicker2.Date+" and main.dat_dog < "+DateTimePicker2.Date;
и вот ето не канает, может че не так (извиняюсь, я только учусь)
Reindeer Moss Eater (2002-05-13 18:54:00) [16]Совсем неопределенный синтаксис конечно не получится использовать.
Может покажешь свой?
AJ blacksmith (2002-05-13 18:53:00) [17]Но я сравниваю с DateTimePicker, может какой-то опредиленный синтаксис нужен?
Anatoly Podgoretsky (2002-05-13 18:48:00) [18]Нормально работают, у тебя наверно ошибка в программе.
Reindeer Moss Eater (2002-05-13 18:40:00) [19]Они работают