Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.15;
Скачать: CL | DM;

Вниз

Dynamic SQL   Найти похожие ветки 

 
reticon ©   (2003-08-26 11:04) [0]

Совсем задолбался с параметрическими запросами...
Пишу, допустим, такой код:

var
name: string;
...
name:=DBLookupComboBox1.Text;
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add("SELECT * FROM OUT WHERE NAME = :name");
SQL.Open;
end;


Здесь все работает. (Тип поля NAME - строковый и переменная name тоже строка).
Идем дальше. Еще пишу такой код:

var
date1, date2: string;
...
date1:=DateToStr(DateTimePicker1.Date);
date2:=DateToStr(DateTimePicker2.Date);
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add("SELECT * FROM OUT WHERE DATE BETWEEN :date1 AND :date2");
//SQL.Add("SELECT * FROM OUT WHERE DATA BETWEEN "+DateToStr(date1)+" AND "+DateToStr(date2)+"");
SQL.Open;
end;


При выполнении этого запроса выдает ошибку "Field date1: Not Found"
(при условии, что тип поля DATE и переменной date1 - строковый).
Если же в таблице изменить тип поля DATE на тип Date и тип переменной date1 изменить на TDateTime,
то ошибка выдается, например, в таком виде: "Token not found. Token: 24.08". Вообще хочу отобрать записи между двумя датами.

Кто знает, где здесь грабли?


 
Reindeer Moss Eater ©   (2003-08-26 11:16) [1]

SELECT * FROM OUT WHERE DATE BETWEEN :date1 AND :date2"

Откуда такая любовь к зарезервированным словам?


 
NickBat ©   (2003-08-26 11:17) [2]

Что-то не видно где ты параметры подставляешь в запрос?


 
asp ©   (2003-08-26 11:17) [3]

На Fox"е раньше работал? ;)
...
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add("SELECT * FROM OUT WHERE DATE BETWEEN :date1 AND :date2");
//SQL.Add("SELECT * FROM OUT WHERE DATA BETWEEN "+DateToStr(date1)+" AND "+DateToStr(date2)+"");
end;
Query1.ParamByName("date1").DataType:= ftDate;
Query1.ParamByName("date1").AsDate:= DateTimePicker1.Date;
Query1.ParamByName("date2").DataType:= ftDate;
Query1.ParamByName("date2").AsDate:= DateTimePicker1.Date;
Query1.Open;
...


 
Sergey13 ©   (2003-08-26 11:23) [4]

Интересно а какие строки находятся между "мама" и "папа"? Зачем для даты строковый формат? Напиши код для варианта с форматом DATE.


 
Соловьев ©   (2003-08-26 11:49) [5]


> SQL.Add("SELECT * FROM OUT WHERE DATE BETWEEN :date1 AND
> :date2");

...
SQL.Add("SELECT t1.* FROM OUT t1 WHERE t1."DATE" BETWEEN :date1 AND
:date2");
...
ParamByName("date1").AsDateTime := date1;
ParamByName("date2").AsDateTime := date2;
Open;
...


 
reticon ©   (2003-08-26 14:43) [6]

Всем спасибо...все нормально работает.
Жара просто в Сочи...



Страницы: 1 вся ветка

Текущий архив: 2003.09.15;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.023 c
1-48513
Переяслов Григорий
2003-09-04 14:49
2003.09.15
Прозрачный фонт при прорисовке текста в Canvas


3-48468
NorthMan
2003-08-22 19:15
2003.09.15
Народ, почему при работе с фоксовыми таблицами вылезает


6-48672
eK
2003-07-14 22:32
2003.09.15
Как мне переделать аутентификацию на веб-сервере


9-48388
Джастер
2002-10-20 14:30
2003.09.15
Игрулька Phyz


4-48837
mxsb
2003-07-16 12:07
2003.09.15
Как записать из запущенной проги в ее же exe-шник?