В конструкторе WHERE две строки:
1. SELF.Select.Where(RV:RestTypeID,GLO:InventarRestID,'=','AND')
2. SELF.Select.Where(RV:RestTypeID,'','is null','OR')
т.е. по итогу должен получиться запрос вида
WHERE RestTypeID = число OR RestTypeID IS NULL
по логу формируется не OR, а AND, т.е.
WHERE RestTypeID = число AND RestTypeID IS NULL
если вторую строку заменить на строку такого же типа как и первая, то запрос формируется правильно через OR, т.е.
1. SELF.Select.Where(RV:RestTypeID,GLO:InventarRestID,'=','AND')
2. SELF.Select.Where(RV:RestTypeID,GLO:InventarRestID2,'=','OR')
получаем
WHERE RestTypeID = число OR RestTypeID = число
Конструктор Where: OR и AND
Модератор: Andrew™
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion и MAV который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion и MAV который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Re: Конструктор Where: OR и AND
взял пример ABCMAVT, там есть SQLBrowseAccounts, в ней есть дочерняя Browse по позициям, выставил следующий фильтр:StillZero писал(а):В конструкторе WHERE две строки:
1. SELF.Select.Where(RV:RestTypeID,GLO:InventarRestID,'=','AND')
2. SELF.Select.Where(RV:RestTypeID,'','is null','OR')
т.е. по итогу должен получиться запрос вида
WHERE RestTypeID = число OR RestTypeID IS NULL
по логу формируется не OR, а AND, т.е.
WHERE RestTypeID = число AND RestTypeID IS NULL
Код: Выделить всё
SELF.Select.Where(SQLAccPos:AccRef,SQLAccounts:AccRef,'=','AND')
SELF.Select.Where(SQLAccounts:TstDate,'','is null','OR')
Код: Выделить всё
WHERE A."AccRef"=? OR C."TstDate" is null
и вообще ты меня обманываешь
Код: Выделить всё
1. SELF.Select.Where(RV:RestTypeID,GLO:InventarRestID,'=','AND')
2. SELF.Select.Where(RV:RestTypeID,'','is null','OR')
Код: Выделить всё
WHERE RestTypeID = число OR RestTypeID IS NULL
Код: Выделить всё
WHERE RestTypeID = ? OR RestTypeID IS NULL
- StillZero
- Ветеран
- Сообщения: 454
- Зарегистрирован: 06 Июль 2005, 2:17
- Откуда: Хабаровск
- Контактная информация:
...теперь другой косяк-багофича...теперь, правда, думаю, что понимаю почему
в конструкторе WHERE создаю две строки:
SELF.Select.Where(RV:RestTypeID,GLO:InventarRestID,'=','(AND')
SELF.Select.Where(RV:RestTypeID,'','is null','OR)')
запрос формируется без последней скобки, т.е.
и соответственно ругается на синтаксис
если, опять таки, вместо второй строки повторить аналог первой строки, типо
SELF.Select.Where(RV:RestTypeID,GLO:InventarRestID2,'=','OR)')
то запрос формируется правильно
в конструкторе WHERE создаю две строки:
SELF.Select.Where(RV:RestTypeID,GLO:InventarRestID,'=','(AND')
SELF.Select.Where(RV:RestTypeID,'','is null','OR)')
запрос формируется без последней скобки, т.е.
Код: Выделить всё
WHERE (RestTypeID = число OR RestTypeID IS NULL
если, опять таки, вместо второй строки повторить аналог первой строки, типо
SELF.Select.Where(RV:RestTypeID,GLO:InventarRestID2,'=','OR)')
то запрос формируется правильно