Page 1 of 1

single quote and Illegal filter expression

Posted: Mon 01 Mar 2010 05:31
by fisher
Good day.
I can not solve one problem.
I have a TMyQuery on a form. In database I have some records 'some_data' (with quotes) and want to find them.
When I set propery

Code: Select all

Filter = 'CATEGORY_NAME = '''some_data'''';

and then

Code: Select all

Filtered = true;
I get exception "Illegal filter expression".

When I use MySQL syntax, I set

Code: Select all

FilterSQL = '`CATEGORY_NAME` = \some_data\';
all is normally filtered.

How I must set Filter property to filter data with single quotes?
MyDAC version: 5.90.0.55

Posted: Mon 01 Mar 2010 12:41
by Falcon
Use following code:

Code: Select all

Filter := 'CATEGORY_NAME = ''some_data''';
instead of

Code: Select all

Filter = 'CATEGORY_NAME = '''some_data'''';

Posted: Wed 03 Mar 2010 02:47
by fisher
Thanks for the answer, but your variant too raises Illegal filer Expression.
It's works only if I type (I'm checking in Object Inspector by changing property Filter and then setting property Filtered in true)

Code: Select all

CATEGORY_NAME = 'some_data'
but it filtered by some_data not by 'some_data'.

How correctly to shield single quotes for the Filter property?

Posted: Thu 04 Mar 2010 10:44
by Falcon
Use the following designtime Filter property value

Code: Select all

CATEGORY_NAME = "''some_data''".
In runtime you can use the following code

Code: Select all

Filter := 'CATEGORY_NAME = "''''some_data''''"';.