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

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

ADOQuery.Filter [D6, MSSQL]


DPetrovich ©   (2002-09-17 12:19:00) 

Подскажите, пожалуйста, почему когда я пишу
ADOQuery.Filter="not pole=0"
возникает ошибка
Аргументы имеют неверный тип, выходят за пределы доаустимого диапозона или вступают в конфликт друг с другом.,
а вот когда
ADOQuery.Filter="pole<>0",
то всё нормально?


kig   (2002-09-17 16:43:00) [1]

Вообше-то проще здесь посмотреть, какой синтаксис поддерживает АДО в фильтре
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdprofilter.asp


DPetrovich   (2002-09-17 16:40:00) [2]

Это не спортивно ;)


Johnmen   (2002-09-17 16:29:00) [3]

Мда....
Перепробуй варианты обозначения NOT, типа !
Иначе остается только не париться и pole<>0:^))))


DPetrovich   (2002-09-17 16:22:00) [4]

не, все восемь вариантов перепробовал - не помогает


Johnmen   (2002-09-17 15:07:00) [5]

А вот безумное предложение - not большими буквами....
NOT (pole = 0)


DPetrovich   (2002-09-17 14:38:00) [6]

Mike Kouzmine (17.09.02 14:20)
Спасибо, но не помогает :(


Mike Kouzmine   (2002-09-17 14:20:00) [7]

разбиратель выражения.
Тут обнаружил:
include a space between comparison values and comparison operators in filter expressions. For instance, ensure that there is a space after the field name and before the operator.
Может из-за этого


DPetrovich   (2002-09-17 14:14:00) [8]

>>Mike Kouzmine (17.09.02 13:21)
А что такое парсер?


DPetrovich   (2002-09-17 14:12:00) [9]

>>Mike Kouzmine (17.09.02 13:21)
Проблема в том, что я использую dxDBGrid, который при фильтрациий генерит строку имеено в таком виде (not (pole=0)), после этого возникает ошибка, при формировании строки ручками - аналогично. Приходится переформировывать строку без not, но это как-то не спортивно...


Mike Kouzmine   (2002-09-17 13:35:00) [10]

Нда...


Johnmen   (2002-09-17 13:29:00) [11]

>Mike Kouzmine (17.09.02 13:21)

Судя по хелпу - поддерживается...:)
Почему не работает у автора - непонятно...


Mike Kouzmine   (2002-09-17 13:21:00) [12]

А в чем проблема-то? Пиши pole<>0. А ты уверен, что парсер поддерживает конструкцию not(pole=0)?


DPetrovich   (2002-09-17 12:50:00) [13]

Anatoly Podgoretsky © (17.09.02 12:46)
А я применя not не к pole, а к выражению
pole=0, которое логическое


Anatoly Podgoretsky   (2002-09-17 12:46:00) [14]

DPetrovich © (17.09.02 12:34)
А надо не полагать, фильтр это не SQL запрос
pole у тебя явно не логического типа и применить к нему операцию NOT нельзя


DPetrovich   (2002-09-17 12:39:00) [15]

>>ЮЮ © (17.09.02 12:35)
не помогает


ЮЮ   (2002-09-17 12:35:00) [16]

попробуй
ADOQuery.Filter="not (pole=0)"
по крайней мере в SQL
not field1 is null - ошибка,
а
not (field1 is null) работает


DPetrovich   (2002-09-17 12:34:00) [17]

как что? Я полагал, что то что в свойстве Filter по синтаксису такое же как после where, я ж пишу
select * from Table1 where not pole=0
также по идее и здесь должно быть...


Anatoly Podgoretsky   (2002-09-17 12:23:00) [18]

Ну со вторым все понятно, логично, а вот что бы значила первая конструкция?


Наверх

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