Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.08.2012, 12:49   #1
leklerk
Пользователь
 
Регистрация: 17.02.2012
Сообщений: 38
По умолчанию Не работает Filter у ADODataSet

Добрый день! Помогите понять, где ошибка. В Filter у ADODataSet записываю
Код:
ADODataSet1.Filter:= '(Этап=''ВЫПОЛНЕН'' OR Этап=''Сбыт'') AND Изделие=''ДПД''';
Получаю сообщение "Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом".
Имена полей берутся из представления (MS SQL 2005), написаны без ошибок.
Такие фильтры нормально работают:
Код:
ADODataSet1.Filter:= 'Этап=''ВЫПОЛНЕН'' AND Изделие=''ДПД''';
ADODataSet1.Filter:= '(Этап=''ВЫПОЛНЕН'') AND Изделие=''ДПД''';
ADODataSet1.Filter:= '(Этап=''ВЫПОЛНЕН'' OR Этап=''Сбыт'') OR Изделие=''ДПД''';
leklerk вне форума Ответить с цитированием
Старый 29.08.2012, 12:55   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
ADODataSet1.Filter:= '(Этап='+QuotedStr('ВЫПОЛНЕН')+' OR Этап='+QuotedStr('Сбыт')+') AND Изделие='+QuotedStr('ДПД');
ферштейн?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.08.2012, 13:59   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Думаю не в этом дело. С кавычками там без проблем. Подобный фильтр с символьными полями на ClientDataSet у меня валил Kernel.dll, какой-то глючек затесался. Можно заменить на OnFilterRecord
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 29.08.2012 в 14:01.
Аватар вне форума Ответить с цитированием
Старый 29.08.2012, 14:41   #4
leklerk
Пользователь
 
Регистрация: 17.02.2012
Сообщений: 38
По умолчанию

Да, мне подсказали на другом форуме, надо так:
Код:
ADODataSet1.Filter:= '(Этап=''ВЫПОЛНЕН'' AND Изделие=''ДПД'') OR (Этап=''Сбыт'' AND Изделие=''ДПД'')';
leklerk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ADODataset - проблема с фильтром DaysOfGrace Помощь студентам 0 04.06.2012 20:58
ADOTable и ADODataSet ddis Общие вопросы C/C++ 0 04.01.2011 07:54
Не работает Filter. Не знаю, что делать...Т_Т Zerofill БД в Delphi 2 02.06.2009 21:23
свойство ADOdataSET.CommandTimeout не работает _liv_ БД в Delphi 0 30.10.2007 14:54
idudpserver+mssql+adodataset vodila БД в Delphi 1 11.08.2007 09:56