|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
And OR в Adotable.filter
Добрый день, помогите пожалуйста, тупой вопрос, но задача стоит..
пишу фильтр, по 2 столбца "Zakaz" = integer "Izd"= string; Есть набор заказов, хочу из этого набора заказов вытянуть конкретное издательство. Код:
adotable2.Filter:='((Zakaz = 121413) AND (Zakaz = 121584 )) AND (Izd = '+#39+'АСТ'+#39+')'; Но, мне надо из нескольких заказов, я пишу Код:
adotable2.Filter:='((Zakaz = 121413) OR (Zakaz = 121584 )) AND (Izd = '+#39+'АСТ'+#39+')'; Если заменяю везде на OR или AND - то все работает.. Подскажите, где я ошибаюсь. Спасибо. |
#2
|
||||
|
||||
Первый вариант не верен ибо невыполним. А вот во втором варианте у вас не хватает по одной кавычке для текстового значения:
Код:
adotable2.Filter:='((Zakaz = 121413) OR (Zakaz = 121584 )) AND (Izd = ''АСТ'')'; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
в роли ковычек у меня #39.
Ошибка стандартная, как при неверном фильтре: "Аргументы имеют неверный тип, выходят за пределы допустимых значений или вступают конфликт с друг другом". Есть какое-нибудь правило использования OR AND в одном условии? Последний раз редактировалось draginimp, 05.08.2015 в 09:37. |
#4
|
||||
|
||||
Нельзя ставить их рядом т.е. OR AND - недопустимы, нельзя сравнивать разные типы например текст и число, ну а все остальное на ваше усмотрение. Судя по сообщению вы нарушили как раз второе ограничение.
Какого типа Izd - точно строковое? А Zakaz - точно числовое? И еще момент, вы к какой БД подключаетесь-то? Возможны синтаксические отличия в разных типах баз. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. Последний раз редактировалось Страдалецъ, 06.08.2015 в 10:11. |