Subject Re: [IBO] IB_LookupCombo sorting case insensitive
Author Bob Zirbel
Thanks for your reply, Helen.

Basically, I want the IB_LookupCombo drop-down list to be in case
insensitive order (otherwise the search doesn't work properly). I
changed my query's Order By clause to Order By Upper(FieldName) but
obviously IBO replaces it with it's own standard Order By FieldName.

You have effectively answered my query in that I now understand that
you have to use a dummy upper case column. This seems a bit messy
especially when you want to be able to order by/search multiple
columns.

I was hoping that there was a simple way to specify that the order
was to be case insensitive.

Is there a way to manually configure a IB_LookupCombo/IB_Query to be
able to correctly search a mixed case drop-down list?

Regards

Bob


--- In IBObjects@yahoogroups.com, Helen Borrie <helebor@t...> wrote:
> At 11:59 PM 21/06/2005 +0000, you wrote:
> >Hi all.
> >
> >Is there any way to have an IB_LookupCombo sort case insensitively
> >when ordering/searching is being used? The inbuilt
ordering/searching
> >mechanism overrides the Order By Upper(FieldName) clause I am
trying
> >to use.
>
> I can't quite relate to what you are talking about here. Can you
> elaborate? What do you have your lookup dataset doing? What do
you think
> the IB_LookupCombo is doing?
>
> >The end result is that searching doesn't work when the data
> >contains mixed case text.
>
> Searching all boils down to SQL, so your searches have to be
mindful of
> what SQL does with equality searches. But searching and ordering
are two
> different things. A set's ordering depends on an ORDER BY
clause. An IBO
> dataset can manipulate the ORDER BY clause from one view of it to
another
> by several means. Ordinarily, you would order a lookup dataset
according
> to how you want to search it and you would configure the searching
> behaviour in accord with that. You need to avoid returning a
lookup
> dataset that contains nulls in search fields.
>
> IBO has a built-in feature that lets you reduce the complexity of
> expression searches and avoid ordering by expressions at all.
Define a
> case-insensitive proxy column for a varchar column and populate it
> automatically by a trigger with UPPER(YourVarchar). Index this
column
> instead of the base column. Then, the IB_Dataset can hook into it
and use
> it for fast case-insensitive orderings and searches. See the
> ColumnAttribute 'CASE INSENSITIVE' in the ib_query fields editor.
The
> field alongside this attribute should contain the column name of
the proxy
> column. IBO will then uppercase your search string and resolve a
search on
> the base column to 'WHERE YourProxyColumn = TheUpperCaseString'.
>
>
> >Any help would be appreciated.
>
> Since I don't yet understand what the problem is that you are
trying to
> solve, I can't say whether this feature would help here.
>
> Helen