Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Ошибка при попытки фильтрации

14K
21 апреля 2007 года
Azur
27 / / 17.08.2006
Дело вот в чем, при попытке включить на ADOquery filter выскакивает ошибка "Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом." Что самое странное абсолютно аналогичные фильтрации но с другой таблицей и другими запросами проходят на ура... База акцессовская..
1
22 апреля 2007 года
kot_
7.3K / / 20.01.2000
Цитата: Azur
Дело вот в чем, при попытке включить на ADOquery filter выскакивает ошибка "Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом." Что самое странное абсолютно аналогичные фильтрации но с другой таблицей и другими запросами проходят на ура... База акцессовская..


Ну и что здесь странного? Вопрос твой в чем?

14K
22 апреля 2007 года
Azur
27 / / 17.08.2006
Вопрос в том, откуда берется данная ошибка. Все типы совпадают, проверял и не раз, по идее все должно работать - но, увы...
247
22 апреля 2007 года
wanja
1.2K / / 03.02.2003
Какую строчечку ты пишешь в фильтр, и каковы типы полей?
14K
22 апреля 2007 года
Azur
27 / / 17.08.2006
Выглядит это вот так:
 
Код:
DataSource1->DataSet->Filter  = "[Заказчик] = " + DBGrid1->SelectedField->AsString;

Тип поля - текстовый. И после этого при попытке включить фильтр вылетает данная ошибка.
9.5K
22 апреля 2007 года
Borgir
97 / / 20.12.2006
Цитата: Azur
Выглядит это вот так:
 
Код:
DataSource1->DataSet->Filter  = "[Заказчик] = " + DBGrid1->SelectedField->AsString;

Тип поля - текстовый. И после этого при попытке включить фильтр вылетает данная ошибка.



Вообще насколько я помню, в фильтре значения полей надо указывать в одинарных кавычках. И еще я не помню чтоб название поля надо было указывать в квадратных скобках.
Попробуй так:

 
Код:
DataSource1->DataSet->Filter  = "Заказчик = \'" + DBGrid1->SelectedField->AsString+"\'";
263
22 апреля 2007 года
koltaviy
816 / / 16.12.2004
Учи мат. часть!!
 
Код:
[LEFT]DataSource1->DataSet->Filter  = "[Заказчик] = '" + DBGrid1->SelectedField->AsString + "'";
..[/LEFT]
263
22 апреля 2007 года
koltaviy
816 / / 16.12.2004
Цитата: Borgir

..
И еще я не помню чтоб название поля надо было указывать в квадратных скобках.
..


В квадратных скобках поле указывается, если наименование поля состоит из двух слов, к примеру:

 
Код:
..
table.[My field]
..

Если указать название поля из одного слова в квадратных скобках - ошибкой не будет!!
С русскими наименованиями полей также часто возникают проблемы, но при использовании квадратных скобок - проблем у меня ни разу не возникало!!
14K
22 апреля 2007 года
Azur
27 / / 17.08.2006
koltaviy, Спасибо большое, помогло. Удивительно, но по незнанию везде писал без одинарных кавычек - и работало до данного момента.
263
22 апреля 2007 года
koltaviy
816 / / 16.12.2004
Почему же только мне?!! Borgir сказал то же самое!!

Вы народ только не горячитесь с использованием одинарных кавычек:
1) Данный код я указал именно для текстового поля!!
2) Для числового поля одинарные кавычки указывать не нужно.
3) Для поля с датой вместо кавычек используется знак #.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог