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

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

SQL Query [D5, Paradox]


DenKop ©   (2002-06-22 18:41:00) 

Делаю так:
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add("SELECT * FROM main WHERE "+Combobox1.Text+
" Between ""+Edit2.Text+"" ""+Edit3.Text+""");
Query1.Open;

Combox1 - имя поля
Edit2 - Дата1
Edit3 - Дата2

Должна искать все записи у которых поле Data находится в диапазоне от Edit2.Text до Edit3.Text

После выполнения получаю ошибку
"Token not found"
Token:"01.02.2001"

Подскажите, что я делаю не правильно?


DenKop   (2002-06-23 20:18:00) [1]

Спасибо, понял свой косяк. Думаю нужно повнимательнее читать умные книги.


Bakca   (2002-06-23 13:45:00) [2]

на крайняк можно просто
where ([поле] >= "дата1") and ([поле] <= "дата2")
---
насколько я знаю конструкция between такова:
where [поле] between "дата1" and "дата2"


NNH   (2002-06-23 10:24:00) [3]

Можно задать два параметра типа "Дата" (D1, D2 - например), и перед выполнением запроса передавать их в качестве условия:
try
Query1.Close;
Query1.Prepare;
Query1.ParamByName("D1").AsString:=DateFrom; // DateFrom - //Переменная типа "Дата" - от даты
Query1.ParamByName("D2").AsString:=DateTo; // DateTo -//Переменная типа "Дата" - по дату
Query1.Open;
except end;


nick_sniper   (2002-06-23 02:59:00) [4]

Правильно будет:

Query1.SQL.Add("SELECT * FROM main WHERE "+Combobox1.Text+
" Between ""+Edit2.Text+"" AND""+Edit3.Text+""");


DenKop   (2002-06-23 02:01:00) [5]

А где именно? В описании читал, что для between"а ни каких AND не трубуется.


Polevi   (2002-06-22 18:51:00) [6]

AND пропущен


Наверх

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