| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Фильтрация, снова фильтрация |
| Автор: Иван Помидоров 21.12.2003, 00:04 |
| Делаю прогу с БД. Нужна фильтрация по нескольким полям. Делаю так: filtr:=''; filtr:='select* from journal.dbf where (regn= '+ maskedit1.text+') and '; filtr:=filtr + ' (num= '+ maskedit2.text+ ') and '; filtr:=filtr + ' (bortn= '+ maskedit3.text +') and '; filtr:=filtr+ ' (datereg= '+datetostr(datetimepicker1.date)+ ') and '; filtr:=filtr + '(name= '+ edit1.text +') and '; filtr:=filtr + '(nreis= '+ maskedit4.text +') and '; filtr:=filtr +' (daten='+ datetostr(datetimepicker2.date) +') and '; filtr:=filtr +' (datek='+ datetostr(datetimepicker3.date) +') and '; filtr:=filtr + '(nachr= '+ edit2.text +')'; showmessage(filtr); //Выводит такую строку select* from journal.dbf where //(regn='666') and (num= '6') and (datereg= '18.12.2003') and (bortn= 'МИ4441') and (name= 'Ангара') //and (nreis= '33') and (datek='12.04.1988') and (daten= '08.01.1988') and (nachr= 'Чернов') {Такая запись точно есть. Причем если тоже самое написать в квери не запуская программу то он фильтрует без вопросов. Но если программу запустить то сразу после вышеуказаного шоумессаджа вылетает ошибка: "Invalid use of keyword. Token:.2003)" Причем сначала я пытался сделать через фильтред(тож в мессадже все правильно выводил) тож вылетала ошибка и укзывал он на точку '.' Такое ощущение что он от даты отделяет год. Я эту дату уже и в переменную загонял, и строковой константой писал ничего непомогает все эту лшибку выдает!!!} form1.query1.Close; form1.query1.Open; form1.query1.sql.clear; form1.query1.sql.Add(filtr); form1.query1.Active:=false; form1.query1.Active:=true; regn, num, bortn и тд это все поля БД. Подскажите можт я гдето с апострофами напутал, хотя все уж перепробывал...а лучше пристрелите меня, чтоб не мучался. П.С. Повесить того кто придумал фильтрацию!!! |
| Автор: Петрович 21.12.2003, 19:00 | ||||||
Надо-бы пробельчик между SELECT и *.
Ну тут ты крут
|