Subject AW: [IBO] New sub-release 3.6 Ca
Author Heinz Morandell
> -----Urspr√ľngliche Nachricht-----
> Von: Andreas Pohl [mailto:apohl@...]
> Gesendet: Montag, 11. Dezember 2000 11:05
> An: IBObjects@egroups.com
> Betreff: Re: [IBO] New sub-release 3.6 Ca
>
>
> Comma has two meanings in IN() clause if you are using it in
> German keyboard
> layouts: list and decimal separator.
>
> Two avoid misunderstandings I teach my users to use spaces
> around comma for
> numeric list entries. Without spaces comma is interpreted as decimal
> seperator.
>
> This rule is easy to understand for users and leads to
> correct results, too.

But not with TIB_Query.Filter. There the spaces are stripped out of the
filter.

>
> Mit freundlichem Gruss & Best Regards
>
> Andreas Pohl
> apohl@...
> http://www.ibp-consult.com
>
> -----Urspr√ľngliche Nachricht-----
> Von: "Heinz Morandell" <Heinz.Morandell@...>
> An: <IBObjects@egroups.com>
> Gesendet: Samstag, 9. Dezember 2000 16:20
> Betreff: AW: [IBO] New sub-release 3.6 Ca
>
>
> > Jason,
> >
> > there are still problems with the correct IN () syntax.
> >
> > Something like
> > column IN (2418,2419,2420)
> > gets parsed to
> > column IN (2418.2419.2420)
> >
> > because the commas are interpreted as the
> > DecimalSeparator (at least here in Germany) and then
> converted into points
> > in
> > procedure ProcessItem().
> >
> > Also there are extra commas added into the filter in
> ExtractFilterClause().
> > I've already figured out the fix:
> >
> > if UpperCase( AOper ) = 'IN' then
> > begin
> > if tmpStr = '(' then
> > AItem := '( '
> > else
> > raise EIB_Error.Create( 'Invalid Filter syntax: IN()' );
> > tmpStr := GetNextToken( AFilter, false );
> > while Length( AFilter ) > 0 do
> > begin
> > ProcessExpr( tmpStr );
> > // AItem := AItem + ', ' + tmpStr;
> > AItem := AItem + tmpStr; // <----
> > tmpStr := GetNextToken( AFilter, false );
> > if tmpStr = ')' then
> > Break;
> > end;
> > if tmpStr = ')' then
> > AItem := AItem + ' )'
> > else
> > raise EIB_Error.Create( 'Invalid Filter syntax: IN()' );
> >
> >
> > Heinz Morandell
> >
> >
> > > -----Ursprungliche Nachricht-----
> > > Von: Jason Wharton [mailto:jwharton@...]
> > > Gesendet: Freitag, 8. Dezember 2000 22:31
> > > An: IBObjects@egroups.com
> > > Betreff: [IBO] New sub-release 3.6 Ca
> > >
> > >
> > > From the release notes:
> > >
> > > French constants updated.
> > >
> > > Published OnSetColumnText for TIB_Grid control.
> > >
> > > Enhanced the Filter syntax to accommodate all of the former
> > > BDE syntax and
> > > options as well as integrated in all of the simple SQL-Style
> > > syntax items:
> > >
> > > IS [NOT] NULL
> > >
> > > [NOT] BETWEEN ... AND ...
> > >
> > > [NOT] IN ( ... )
> > >
> > > [NOT] LIKE ... ESCAPE ...
> > >
> > > [NOT] CONTAINING ...
> > >
> > > [NOT] STARTING [WITH] ...
> > >
> > > This is all in addition to the former syntax and it is all
> > > integrated into
> > > the filtering options as well. PartialMatch only applies when
> > > the operator
> > > is '=' and the asterisk and case insensitivity applies to all
> > > of them and it
> > > will substitute in the NOCASE columns indicated in the
> > > ColumnAttributes
> > > automatically.
> > >
> > > I modified the TIB_TransactionBar to respond to cachedupdates
> > > pending when
> > > executing the CommitRetaining and RollbackRetaining. Keep in
> > > mind that if
> > > updates are active then in the process of handling the
> > > updates a hard Commit
> > > or Rollback will be performed. I assume if you are using
> > > cachedupdates then
> > > you are prepared for that.
> > >
> > > I made it so that when you are using cached updates in a
> > > detail dataset
> > > using MasterLinks and you insert records in the detail
> > > dataset and change to
> > > a different master record it will only make the inserted
> > > record appear when
> > > its corresponding master record is scrolled to. Calling
> > > CancelUpdates or
> > > ApplyUpdates acts upon the record even if it isn't in the
> > > current visible
> > > records. Previously inserts showed up for all master records.
> > > This does not
> > > work with MasterParamLinks situations and I don't think it
> > > will work for the
> > > TDataset stuff yet either. I have not handled it there.
> > >
> > > I improved the handling of InvalidateRows (RefreshRows) when
> > > using cached
> > > updates and there are edits in the buffers. Previously it
> > > simply ignored
> > > records that had cached updates associate with them but now
> > > it surgically
> > > removes the old row that came from the server and the next
> > > time that record
> > > is pulled into a buffer it will fetch from the server the
> > > current row and
> > > replace the previous old row. This can be a mechanism for
> > > dealing with the
> > > "Record changed by another user" since it is possible to
> > > invalidate a row
> > > and get the new values to base the updates on if
> necessary. The only
> > > complaint I have there is that there isn't a way to tell if
> > > the record was
> > > changed and so the user may not be aware of the change until
> > > they cancel
> > > their updates and take a look at it. The only solution to
> > > this is to add a
> > > third hook on the buffer node so that it will be possible to
> > > distinguish the
> > > NEW, CUR and OLD values. I am considering doing that but it
> > > will impact the
> > > memory usage a little by adding in two variables to me node
> > > record. I don't
> > > have a way to surface the CUR values either...
> > >
> > > In the process of the above changes I also cleaned up the
> > > processing of the
> > > CalculatedFields better. It should now be very precise and
> > > efficient about
> > > when the fields are calculated and how they are cached in
> > > memory. Prior to
> > > this time I had it doing a little overkill just to make sure
> > > the buffers
> > > always reflected accurate values but this was undesirable for
> > > those who were
> > > using semi-expensive routines in the calc routine.
> > >
> > > Fixed the handling of TIBODataset when multiple input
> > > parameters have the
> > > same name. They are now consolidated down to the unique
> occurrences.
> > >
> > > Fixed a problem with the resolution of MIDAS columns when
> updating or
> > > inserting records. In some cases it was having the full field
> > > name (meaning
> > > TABLE.COLUMN) instead of just the FieldName (meaning COLUMN)
> > > and it was not
> > > finding the right column to line up with. I made it so that
> > > if it doesn't
> > > get a match with the full field name to parse off the table
> > > name and try it
> > > with just the column name and now it works fine. Previously
> > > it was just
> > > inserting NULL instead of the appropriate values.
> > >
> > > Published the RecordCountAccurate property for TIBOQuery
> and TIBOTable
> > > components.
> > >
> > > Added the ability to right click in the Query editor's list
> > > of tables to
> > > optionally include or exclude views and stored procedures.
> > >
> > > I increased the internal margin for text inside of the
> > > TIB_Grid control so
> > > that there is a little more white surrounding the text. This
> > > should improve
> > > the readability of the grid considerably. Especially when the
> > > grid is full
> > > of text.
> > >
> > >
> > >
> > > Enjoy!
> > >
> > > Jason Wharton
> > > CPS - Mesa AZ
> > > http://www.ibobjects.com
> > >
> > >
> > >
> > >
> > > -------------------------- eGroups Sponsor
> > > -------------------------~-~>
> > > eGroups eLerts
> > > It's Easy. It's Fun. Best of All, it's Free!
> > > http://click.egroups.com/1/9698/1/_/685810/_/976311443/
> > > --------------------------------------------------------------
> > > -------_->
> > >
> > >
> > >
> >
> >
> >
> >
> >
> >
>
>
> -------------------------- eGroups Sponsor
> -------------------------~-~>
> eGroups eLerts
> It's Easy. It's Fun. Best of All, it's Free!
> http://click.egroups.com/1/9698/1/_/685810/_/976529246/
> --------------------------------------------------------------
> -------_->
>
>
>