|
Вопрос # 1 786/ вопрос открыт / |
|
Здравствуйте, эксперты!
При использовании ABS хочу сделать фильтрацию, но получаю ошибку
"Boolean expression expected, but 'Group' found at line 1, column 2 - Native error: 30066"
В чём ошибка?
Приложение: Переключить в обычный режим- var
- F, S: string;
- begin
- S := Form1.DBGrid1.Fields[0].AsString;
- F := ' Group = ' + QuotedStr(S);
- Form1.ABSTable2.Filter := F;
- Form1.ABSTable2.Filtered := true;
- Form1.ABSTable2.Refresh;
 |
Вопрос задал: Anton (w) (статус: Посетитель)
Вопрос отправлен: 29 июля 2008, 10:46
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Шичко Игорь
Здравствуйте, iamantbk!
Я так понимаю Вы пытаетесь сделать фильтр по строковому значению.
Формат фильтра по строковому значению в этом случае немного не такой и выглядит следующим образом:
Form1.ABSTable2.Filter := 'Group = ''' + S + ''''; // S - строковой значение.
Фильтр по числовому значению:
Form1.ABSTable2.Filter := 'Nomer = ' + IntToStr(N); // N - числовое значение.
Кроме этого необходимо иметь ввиду, что в переменной S должно быть четной число кавычек (если это к примеру названия организаций и т.п.). Иначе фильтр будеть выдавать ошибку.
 |
Ответ отправил: Шичко Игорь (статус: 9-ый класс)
Время отправки: 29 июля 2008, 11:41
|
Мини-форум вопроса
Всего сообщений: 5; последнее сообщение — 30 июля 2008, 03:34; участников в обсуждении: 2.
|
Вадим К (статус: Академик), 29 июля 2008, 11:26 [#1]:
Использовать ключевые слова (а Group есть таким) в качестве имен полей таблицы очень вредно для здоровья и нервов. Но если сильно-сильно хочеться, то можно, правда при этом надо серверу БД объяснить, что это именно поле, а не ключевое слово. Как это делать в случае ABS - не знаю, никогда не использовал.
ABS - это Absolute DataBase?
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Anton (w) (статус: Посетитель), 29 июля 2008, 11:37 [#2]:
Вадим, спасибо. Точно, после изменения имён полей всё заработало!
Совершенно забыл о зарезервированных словах.
А ABS - это да, Absolute DataBase. +1
|
|
Вадим К (статус: Академик), 29 июля 2008, 12:25 [#3]:
to iamantbk
Ну и где же +1?
to Шичко Игорь
функция QuotedStr как раз и заключает в кавычки и экранирует по мере надобности другие кавычки.
Посмотрите на свою строку
Form1.ABSTable2.Filter := 'Group = ''' + S + ''''; // S - строковой значение.
потом почитайте мой ответ, и подумайте, почему он неверный.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Вадим К (статус: Академик), 29 июля 2008, 12:26 [#4]:
to Шичко Игорь
а также подумайте, что будет, если строка S будет содержат кавычку
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Anton (w) (статус: Посетитель), 30 июля 2008, 03:34 [#5]:
to Вадим К
>>Ну и где же +1?
Почему-то появляется
"Изменение репутации участника
Ошибка при передаче системных параметров.
[назад]
[закрыть окно]"
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|