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

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

Работа с датой [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]

Они работают


Наверх

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