Ошибка при попытки фильтрации
Дело вот в чем, при попытке включить на ADOquery filter выскакивает ошибка "Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом." Что самое странное абсолютно аналогичные фильтрации но с другой таблицей и другими запросами проходят на ура... База акцессовская..
Цитата: Azur
Дело вот в чем, при попытке включить на ADOquery filter выскакивает ошибка "Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом." Что самое странное абсолютно аналогичные фильтрации но с другой таблицей и другими запросами проходят на ура... База акцессовская..
Ну и что здесь странного? Вопрос твой в чем?
Вопрос в том, откуда берется данная ошибка. Все типы совпадают, проверял и не раз, по идее все должно работать - но, увы...
Какую строчечку ты пишешь в фильтр, и каковы типы полей?
Код:
DataSource1->DataSet->Filter = "[Заказчик] = " + DBGrid1->SelectedField->AsString;
Тип поля - текстовый. И после этого при попытке включить фильтр вылетает данная ошибка.
Цитата: Azur
Выглядит это вот так:
Тип поля - текстовый. И после этого при попытке включить фильтр вылетает данная ошибка.
Код:
DataSource1->DataSet->Filter = "[Заказчик] = " + DBGrid1->SelectedField->AsString;
Тип поля - текстовый. И после этого при попытке включить фильтр вылетает данная ошибка.
Вообще насколько я помню, в фильтре значения полей надо указывать в одинарных кавычках. И еще я не помню чтоб название поля надо было указывать в квадратных скобках.
Попробуй так:
Код:
DataSource1->DataSet->Filter = "Заказчик = \'" + DBGrid1->SelectedField->AsString+"\'";
Код:
[LEFT]DataSource1->DataSet->Filter = "[Заказчик] = '" + DBGrid1->SelectedField->AsString + "'";
..[/LEFT]
..[/LEFT]
Цитата: Borgir
..
И еще я не помню чтоб название поля надо было указывать в квадратных скобках.
..
В квадратных скобках поле указывается, если наименование поля состоит из двух слов, к примеру:
Код:
..
table.[My field]
..
table.[My field]
..
Если указать название поля из одного слова в квадратных скобках - ошибкой не будет!!
С русскими наименованиями полей также часто возникают проблемы, но при использовании квадратных скобок - проблем у меня ни разу не возникало!!
koltaviy, Спасибо большое, помогло. Удивительно, но по незнанию везде писал без одинарных кавычек - и работало до данного момента.
Вы народ только не горячитесь с использованием одинарных кавычек:
1) Данный код я указал именно для текстового поля!!
2) Для числового поля одинарные кавычки указывать не нужно.
3) Для поля с датой вместо кавычек используется знак #.