![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
работает ли такой запрос в Ацесе?
Ponchic © (2009-05-15 13:48:00)вот в делфи ставиш фильтр и генерится вот такая строка
почему не работает интересно?
date>='08.05.2009 9:19:19' and date<='08.05.2009 9:19:19' and (1=0 or nalichka=1 or nalichka=4)
Медвежонок Пятачок (2009-05-15 14:40:00) [21]С чего бы вдруг ?
подозреваю с того, что писатели tquery и адоквери поленились написать объединение двух where. из sql.text и filter
в случае с ttable where только один в фильтре
Сергей М. (2009-05-15 14:37:00) [22]
> квери + филтер это же локальная фильтрация на клиенте
С чего бы вдруг ?
И тейбл и квери - оба наследники АДОДейтаСета, который как раз и объявляет св-во Фильтр ..
> тупо нет записей со значением 08.05.2009 9:19:19
Он утверждает иное:
> date>='08.05.2009 9:19:19' and date<='08.05.2009 9:19:19'
> например вот эта строка работает
Медвежонок Пятачок (2009-05-15 14:31:00) [23]да просто тупо нет записей со значением 08.05.2009 9:19:19
Медвежонок Пятачок (2009-05-15 14:30:00) [24]квери + филтер это же локальная фильтрация на клиенте
ttable + филтер - серверная (если сервер есть)
Ponchic (2009-05-15 14:30:00) [25]дата хранится в формате дата и время
Наличка это цифровой формат
Сергей М. (2009-05-15 14:29:00) [26]
> Ponchic © (15.05.09 14:26) [14]
Ты с программой MS Access вообще знаком ?
Сергей М. (2009-05-15 14:28:00) [27]
> Медвежонок Пятачок © (15.05.09 14:23) [12]
Он утверждает, что отлуп получен не по причине пустого результирующего НД - до его формирования просто дело не доходит.
При этом он утверждает, что Access хавает строку вида date>='08.05.2009 9:19:19' и не давится. Это, afaik, м.б. только если дата у него хранится в строковом виде.
Ponchic (2009-05-15 14:26:00) [28]filter := filter + ' and (1=0';
if CheckBox1_1.checked then
filter := filter +' or nalichka=1' ;
if CheckBox1_2.Checked then
filter := filter + ' or nalichka=4' ;
if CheckBox1_3.Checked then
filter := filter + 'or nalichka=2';
if CheckBox1_4.Checked then
filter:= filter + ' or nalichka=3';
filter := filter + ')';
вот такой текст был в условии!
не работает ето значит выдает ошибку которую я написал выше....
Сергей М. (2009-05-15 14:23:00) [29]
> раньше другое было
> ну думаю сами поймете что было
Да-да .. делать нам больше нечего, как в только догадалки с тобой играть) ..
Медвежонок Пятачок (2009-05-15 14:23:00) [30]почему не работает интересно?
date>='08.05.2009 9:19:19' and date<='08.05.2009 9:19:19' and (1=0 or nalichka=1 or nalichka=4)
потому что нет записей удовлетворяющих условию. либо все удовлетворяют условию.
в зависимости от того что ты вложил в понятие "не работает"
Сергей М. (2009-05-15 14:22:00) [31]Так тобой же самим и генерится строка фильтра ! Что ж ты лапшу вешаешь ?)
А поле "nalichka" у тебя какого типа ?
Ponchic (2009-05-15 14:19:00) [32]ой тут уже переделал
раньше другое было
ну думаю сами поймете что было в коде где условия стоят
Ponchic (2009-05-15 14:18:00) [33]DateTimePicker1_1.Time := DateTimePicker1_3.Time;
DateTimePicker1_2.Time := DateTimePicker1_4.Time;
date1Str := DateTimeToStr(DateTimePicker1_1.DateTime);
date2Str := DateTimeToStr(DateTimePicker1_2.DateTime);
Filter :='date>='''+date1Str+''' and date<='''+date2Str+'''';
if (CheckBox1_1.checked or CheckBox1_2.checked or CheckBox1_3.checked or CheckBox1_4.checked) then
begin
filter := filter + ' and (';
if CheckBox1_1.checked then
filter := filter +' or (nalichka=1)' ;
if CheckBox1_2.Checked then
filter := filter + ' or (nalichka=4)' ;
if CheckBox1_3.Checked then
filter := filter + 'or (nalichka=2)';
if CheckBox1_4.Checked then
filter:= filter + ' or (nalichka=3)';
filter := filter + ')';
end;
ADOQuery1.Filter := filter;
edit18.text:= ADOQuery1.Filter;
//ShowMessage(ADOQuery1.Filter);
ADOQuery1.Filtered:=true;
Сергей М. (2009-05-15 14:12:00) [34]А кем собссно "генерится вот такая строка", если не тобой самим ?
Ponchic (2009-05-15 14:07:00) [35]значит выдает ошибку
аргументы имеют неверный тип, выходят за пределы допустимого диапозона или вступают в конфликт друг с другом
Сергей М. (2009-05-15 14:07:00) [36]
> про фильтр который в ADOQuery
Ты про св-во Filter что ли ?
Так оно само по себе ничего не "генерит" - какую строку ты сам указал в свойстве, та строка и будет содержимым WHERE-статьи
Сергей М. (2009-05-15 14:03:00) [37]Что значит не работает ?
ПРямо вот так и говорит "не работаю" ?
Ponchic (2009-05-15 14:02:00) [38]про фильтр который в ADOQuery
Ponchic (2009-05-15 14:00:00) [39]date>='08.05.2009 9:19:19' and date<='08.05.2009 9:19:19' например вот эта строка работает
и работает если date>='08.05.2009 9:19:19' and date<='08.05.2009 9:19:19' and nalichka=1
а ту которую написал выше
не работает почему та
Сергей М. (2009-05-15 13:59:00) [40]
> вот в делфи ставиш фильтр
Ты про какой "фильтр" ? В делфи их всякоразных как грязи)..