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

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

работает ли такой запрос в Ацесе?


Страницы:   1 2 3

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]


> вот в делфи ставиш фильтр


Ты про какой "фильтр" ? В делфи их всякоразных как грязи)..


Страницы:   1 2 3

Наверх

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