case-insensitive searches

Charles Yeomans yeomans at desuetude.com
Sat Jul 2 16:42:22 CDT 2005


On Jul 2, 2005, at 11:38 AM, Charles Yeomans wrote:

>
> On Jul 2, 2005, at 2:34 AM, Ruslan Zasukhin wrote:
>
>> On 7/2/05 1:24 AM, "Charles Yeomans" <yeomans at desuetude.com> wrote:
>>
>>>> Well,
>>>>
>>>> It looks that you expect that IF field is indexed by words, than
>>>>
>>>>     SELECT textField from ATable WHERE Lower(textField)="foo"
>>>>
>>>> Will find you record with "foo too roo doo" ?
>>>>
>>>> NO.
>>>>
>>>>     Because Lower(textField)='foo'     // by the way, single quotes
>>>>     will not do indexed search.
>>>>     it will do simple SCAN of column.
>>>>
>>>>     and it can find only record with "foo", "FOO", "fOO" values
>>>
>>> I expect that Valentina can do anything :)
>>
>> I need to think more on this :-))
>>
>>> But for now I will use method fields as I have been.
>>
>> Charles, but any problems with db.collationAttribute ?
>
> Good question; I decided to try that.  I'll see how it works.

In fact I cannot get this to work.  I set

theDB.CollationAttribute(EVColAttribute.kStrength) = 
EVColAttributeValue.kPrimary

but the next time the database file is opened, 
theDB.CollationAttribute(EVColAttribute.kStrength) returns 2.

I also tried setting this property and reindexing the database 
immediately before searching using a query like

SELECT textField from ATable WHERE textField="foo"

and it failed as well.

I'd try some tests with VStudio, but that dog of an application doesn't 
even show the db collation settings.


--------------
Charles Yeomans



More information about the Valentina mailing list