Subject | RE: [IBO] TIB_LookupCombo case insensitive inc search |
---|---|
Author | Brian Dunstan |
Post date | 2000-12-01T06:57:10Z |
Jason,
way the combo is being searched.
this time :-)
Either we are working on totally different lines of thought here or
something... Geoff and Helen seem to be suggesting using a surrogate
uppercase column, but you seem to be saying that is unnecessary for small
tables.
Puzzled,
Brian
> The sample app is wrong and the components are correct.Great :-)
> All that I said applies.I did make the change you suggested but it made no significant change to the
>
> Check the NOCASE checkbox and leave the editbox empty and it
> will work as
> you expect and as I said.
way the combo is being searched.
> (I forget that people use the editors and may not be awareYes, sometimes 'ease of use' features can cloud things. But I understood
> how the text is
> getting filled in.
this time :-)
> Sorry that the sample had that problem in it. This isWell, I did make the change to the sample app without effect.
> probably why you have
> been laboring the point.
Either we are working on totally different lines of thought here or
something... Geoff and Helen seem to be suggesting using a surrogate
uppercase column, but you seem to be saying that is unnecessary for small
tables.
Puzzled,
Brian
> Regards,
> Jason Wharton
> CPS - Mesa AZ
> http://www.ibobjects.com
>
>
> ----- Original Message -----
> From: "Brian Dunstan" <bdunstan@...>
> To: <IBObjects@egroups.com>
> Sent: Thursday, November 30, 2000 11:01 PM
> Subject: RE: [IBO] TIB_LookupCombo case insensitive inc search
>
>
> > Jason,
> >
> > I really hate to labor the point, but the fact is your
> > samples\LookupCombo\LookupCombo.dpr that demonstrates the
> problem. I have
> > made the change you suggested to your sample project but
> the problem still
> > persists. I think if you insert the 'corp x' record into
> the department
> > table of employee.gdb you would see the issue immediately.
> >
> > I am sorry that I appear to be trying your patience.
> >
> > Best regards,
> >
> > Brian
> >
> > > -----Original Message-----
> > > From: Jason Wharton [mailto:jwharton@...]
> > > Sent: Friday, 1 December 2000 9:25 AM
> > > To: IBObjects@egroups.com
> > > Subject: Re: [IBO] TIB_LookupCombo case insensitive inc search
> > >
> > >
> > > There is no bug in this part of IBO. You just were not using the
> > > ColumnAttributes property correctly. I told you how you were
> > > using it wrong
> > > and what you should do to correct it.
> > >
> > > HTH,
> > > Jason Wharton
> > > CPS - Mesa AZ
> > > http://www.ibobjects.com
> > >
> > >
> > > ----- Original Message -----
> > > From: "Brian Dunstan" <bdunstan@...>
> > > To: <IBObjects@egroups.com>
> > > Sent: Thursday, November 30, 2000 6:08 PM
> > > Subject: RE: [IBO] TIB_LookupCombo case insensitive inc search
> > >
> > >
> > > Helen,
> > >
> > > thanks for your reply. I understand the advantage of having a
> > > proxy column
> > > of UPPER case strings for searching, but it is hardly
> > > justified for short
> > > list of a dozen or so rows.
> > >
> > > The IBO help on TIB_CustomCombo says:
> > > "It is case sensitive by default but if the column the lookup
> > > dataset is
> > > currently ordered by has a NOCASE entry in the column
> > > attributes then the
> > > incremental searching will be made case insensitive for you
> > > automatically."
> > >
> > > And Jason has said:
> > > "If you are pulling all the records to the client then there is no
> > > appreciable benefit to having a dedicated column for the uppercase
> > > equivalent. IBO will perform it in memory as you expect."
> > >
> > > So I expect LookupCombo to work without ANY regard to case
> > > with the NOCASE
> > > CollumnAttribute.
> > >
> > > > The way the NOCASE feature works is this:
> > > >
> > > > For the MIXED CASE column on which you want the NOCASE
> > > > feature to work, you
> > > > can define (in your database) a proxy column, populated by
> > > > trigger on the
> > > > main column, which stores UPPER(TheMixedCasedColumnValue).
> > > > You would place
> > > > a non-unique index on this column.
> > > >
> > > > When you come to set up properties for the main (mixed case)
> > > > column, you
> > > > check NOCASE and enter the column name of the column
> containing the
> > > > trigger-populated values. The match sought is
> > > >
> > > > where ProxyColumn = UPPER(SearchValue)
> > > >
> > > > As Jason said:
> > > >
> > > > > >
> > > > > > By leaving it out IBO will use the UPPER( ) where
> > > > > > appropriate. Just keep in
> > > > > > mind that you lose the benefit of having an index so for
> > > > > > larger datasets
> > > > > > this is undesirable.
> > > >
> > > > Meaning that, if the search is forced to be done on the
> > > > mixed-case column
> > > > itself, the query to match the NOCASE criterion will be
> > > >
> > > > WHERE UPPER(SearchedColumn) = UPPER(SearchValue).
> > >
> > >
> > > Why would you need UPPER(SearchedColumn) if you have stored
> > > an upper case
> > > column?
> > >
> > > > That is, UPPERing mixed case SearchedColumn creates an
> > > > expression, thus
> > > > denying you the benefit of any index the column has.
> > > >
> > > > In the case of the sample, you are "double-blinding" it, by
> > > > adding a mixed
> > > > case value to the proxy (otherwise all uppercase) set.
> > >
> > > No, I am not double blinding it. In this example there is no
> > > upper case
> > > column in the DB. All the other values are mixed case and IBO
> > > is converting
> > > the search value to upper case. The issue appears to be that
> > > it doesn't work
> > > when the column has mixed case. In the example it finds
> > > 'Corp' which is
> > > mixed case but it can't find 'corp'.
> > >
> > > > In
> > > > the first place,
> > > > it appears last in the dataset because everything preceding
> > > > it is in upper
> > > > case and hence ahead of it in the collation sequence;
> > >
> > > No, it is last because the first byte is lower case.
> > >
> > > Please, try inserting the row:
> > > insert into department values(1,'corp
> > > x',null,105,100000,'Monterey','(408)
> > > 555-1234');
> > > and run Samples\LookupCombo\LookupCombo.exe
> > > Any other values seem to work OK, it appears to just be an
> > > issue when the
> > > first character is lower case.
> > > Besides, when you enter 'corp ' (no x) into the edit box it
> > > displays 'corp
> > > x' in the edit box, so it has obviously found it, but the
> list doesn't
> > > scroll and it gives an error. I still think it is a bug.
> > >
> > > > and
> > > > second, because
> > > > it does not match what is being searched for, which is
> > > > UPPER(SearchValue).
> > >
> > > IMHO IBO should be doing UPPER(SearchValue) and
> > > UPPER(SearchedColumn) on
> > > it's in memory tables.
> > >
> > > Thanks for your thoughts :-)
> > >
> > > Cheers,
> > >
> > > Brian
> > >
> > > >
> > > > Cheers,
> > > > H.
> > > > All for Open and Open for All
> > > > InterBase Developer Initiative ยท http://www.interbase2000.org
> > > > _______________________________________________________
> > > >
> > > > -------------------------- eGroups Sponsor
> > > > -------------------------~-~>
> > > > eGroups eLerts
> > > > It's Easy. It's Fun. Best of All, it's Free!
> > > > http://click.egroups.com/1/9698/1/_/685810/_/975576749/
> > > > --------------------------------------------------------------
> > > > -------_->
> > > >
> > > >
> > > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > -------------------------- eGroups Sponsor
> > > -------------------------~-~>
> > > eLerts
> > > It's Easy. It's Fun. Best of All, it's Free!
> > > http://click.egroups.com/1/9699/1/_/685810/_/975634295/
> > > --------------------------------------------------------------
> > > -------_->
> > >
> > >
> > >
> >
> >
> >
> >
>
>
> -------------------------- eGroups Sponsor
> -------------------------~-~>
> eLerts
> It's Easy. It's Fun. Best of All, it's Free!
> http://click.egroups.com/1/9699/1/_/685810/_/975651571/
> --------------------------------------------------------------
> -------_->
>
>
>