![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как организовать SQL запрос для поиска в <BLOB Memo> поле таблицы [D7, Paradox]
Zaero © (2005-08-12 10:51:00)Господа, подскажите пожалуйста, как организовать SQL запрос для обращения к информации в <BLOB memo> - поле таблицы. Т.е. при стандартном синтаксисе:
SELECT * FROM Table WHERE BLOBField = 'что-нибудь'
появляется ошибка "Несоответствие типов в выражении".
Если передавать "что-нибудь" в качестве параметра:
Query.SQL.Add('SELECT * FROM Table WHERE BLOBField = :param');
Query.Prepare;
Query.ParamByName('param').AsString:='Что-нибудь';
или
Query.ParamByName('param').AsBlob:='Что-нибудь';
или
Query.ParamByName('param').AsMemo:='Что-нибудь';
- картина аналогичная - "Несоответствие типов в выражении".
В чем проблема?
Zaero (2005-08-12 12:28:00) [1]2DenK_vrtz: Не, неправильно выразился.Надо сделать не выборку полей, а просто - выборку записей, где поле memo заполнено.
Sergey13 (2005-08-12 12:27:00) [2]WHERE BLOBField IS NOT NULL
Zaero (2005-08-12 12:18:00) [3]2DenK_vrtz: Спасибо, запрос типа like помог, но только в случае с поиском конкретной фразы. Что делать, если мне надо сделать выборку полей, где memo заполнено?
Вышеописанные запросы:
Query.SQL.Add('SELECT * FROM Table WHERE BLOBField <> :param');
Query.Prepare;
Query.ParamByName('param').AsString:='';
или
Query.ParamByName('param').AsBlob:='';
или
Query.ParamByName('param').AsMemo:='';
выдают все то же несоответствие типов.
DenK_vrtz (2005-08-12 11:42:00) [4]Запрос типа
select * from table where mem like '%' || :par || '%'
где par - параметр строкового типа
GLFox (2005-08-12 11:37:00) [5]А если castпопробовать?
ANB (2005-08-12 11:21:00) [6]
> rayrom © (12.08.05 11:18) [1]
- от у меня такое предчуствие, что и like не поможет. А поможет (если только это возможно) - Анатолий Подгорецкий, когда придет.
rayrom (2005-08-12 11:18:00) [7]Попробуй вместо := поставить like