Subject Re: [IBO] New release IBO 4.9.3
Author Jason Wharton
I was out of town yesterday but I am back. My wife said that there was a
problem with the computer and when she discovered it she restarted it. The
link should have been up and running again already. I made sure it was up
and running this morning when I got back home. Please try again.

Sorry about that.

Jason Wharton

----- Original Message -----
From: "Jerry Sands" <jsands@...>
To: <IBObjects@yahoogroups.com>
Sent: Friday, June 19, 2009 9:27 AM
Subject: RE: [IBO] New release IBO 4.9.3


The link is still down (for me at least). Will it be down until Jason
returns?



Jerry Sands


From: IBObjects@yahoogroups.com [mailto:IBObjects@yahoogroups.com] On Behalf
Of Andrei Luís
Sent: Friday, June 19, 2009 8:31 AM
To: IBObjects@yahoogroups.com
Subject: Re: [IBO] New release IBO 4.9.3


Trustware link is down.

Regards,
Andrei

2009/6/19 Jason Wharton <supportlist@...
<mailto:supportlist%40jwharton.com> >

> I just put the following release in all download areas.
>
>
>
> 6/18/2009 Release 4.9 Build 3 (beta)
>
> I made extensive fixes and improvements to full text searching. Most
> notable is the inclusion of two new search types. tstWordLike and
> tstWordContaining. I also made it so the AUX column can be left blank in
the
> IB_FTS utility app. I also have the beginnings of an OR operator for word
> pairs, triplets, etc. This is bringing about a SQLUnionItems property that
> will work similar to the SQLWhereItems property. That is the only way to
> make it fully optimizable is to have a UNION for each OR condition.
>
> I fixed the bug having to do with the TIB_Grid making use of the private
> members of TCustomGrid by way of a fake class patterned after it to poke
> into the values. I had not yet made it consistent with the new version of
> Delphi 2009.
>
> I added the OnCustomizeTPB event to the TIB_Database component. This
> surfaced it from the underlying transation object it contains.
>
> I ported over the unit for handling the log files for the service class
and
> the web server base classes I use for the community web-site.
>
> I ported over the unit for handling SQL tracing.
>
> I finished up support for alternate key handling and integrated it into
the
> IB_FTS (full text search) utility application so that keys can be selected
> more easily.
>
> I added in support for calculated fields that are BLOB columns. This
> involved changing the FieldNo variable from type word to integer.
>
> I altered the behavior of BlobNodes. A freshly initialized blob node will
> show a BlobSize of -1 for being uninitialized in order to distinguish from
a
> BLOB being deliberately set to zero length.
>
> I included some MD5 hashing routines in the IB_Utils.pas unit.
>
> I added the following methods below for easier access to the values in the
> buffers. This is also a way to directly tweak the values in calculated and
> COMPUTED field buffers.
>
> {: Similar as in TDataset }
>
> function Lookup( const ABookmark: AnsiString;
>
> const AResultFields: AnsiString ): Variant; overload;
>
> {: PokeValues is a quick and dirty way to directly alter the contents of
> the
>
> buffers without going through the whole process of going into an edit
state
> and
>
> posting. This is a way to tweak the values in the buffers and should only
> be
>
> used under special circumstances that warrent such. <br><br>
>
> The function returns true if the record is found in the buffer and the new
> values
>
> were actually written in.}
>
> function PokeValues( const AKeyFields: AnsiString;
>
> const AKeyValues: Variant;
>
> const APokeFields: AnsiString;
>
> const APokeValues: Variant ): boolean; overload;
>
> {: PokeValues is a quick and dirty way to directly alter the contents of
> the
>
> buffers without going through the whole process of going into an edit
state
> and
>
> posting. This is a way to tweak the values in the buffers and should only
> be
>
> used under special circumstances that warrent such. <br><br>
>
> The function returns true if the record is found in the buffer and the new
> values
>
> were actually written in.}
>
> function PokeValues( const ABookmark: AnsiString;
>
> const APokeFields: AnsiString;
>
> const APokeValues: Variant ): boolean; overload;
>
>
>
> I added the LikeCompare() function to simulate the server's LIKE operator
> on text in IB_Parse.pas.
>
> function LikeCompare( const ALikeStr, AStr: ansistring;
>
> AIgnoreCase: boolean = false;
>
> AEscapeChar: ansichar = '\' ): boolean;
>
> I included a fix from Paul Filmer who corrected a parsing problem having
to
> do with returning the correct RelationAlias for some SQL statements.
>
> I included the fix Andreas pointed out in IBODataset.pas where I converted
> a PChar to PAnsiString instead of PAnsiChar. This was in the
> SetBookmarkData() method. It was causing an access violation.
>
>
>
> Enjoy,
>
> Jason Wharton