Subject Re: [IBO] Basic requirements for a Firebird IBO project?
Author Andrew
On 08/20/2010 10:52 AM, squidsrus85 wrote:
> Thanks Andrew,
>
> I had already downloaded and read 9 of those tech sheets, but they do not explain why stuff is done. I am a retired Mechanical Engineer and I need to understand stuff not just be told how to swap this for that.
>
>
I did the transition 15+ years ago so remembering the how's and why's is
kind of difficult now!!

As far as the SQL goes, Helen's book is quite useful
(
http://www.amazon.ca/Firebird-Book-Reference-Database-Developers/dp/1590592794/ref=sr_1_2?s=books&ie=UTF8&qid=1282317834&sr=1-2
)


As to when you need to use the TDataset components:
- if you are using Quick Report as I don't recall there being an IBO
connector for Quick Report like there is for Report Builder
- you are using a grid or control from another provider (i.e. Delphi
standard DB controls, DevExpress, TMS, Raize, etc)

The native TIB_* components are supposedly faster than the TIBO* components.
I rarely use the TIBO* components so I can not qualify this.
The TIBO* components do however contain a matching TIB_* component but
expose methods matching the equivalent TDataset component.

The biggest difference between using the native TIB_* components and the
TDataset components is that the native query component (TIB_Query) is
where most of the work is done.
If you use a standard DB Grid you have to define all the columns in the
grid.
If you use a TIB_Grid then all the columns are defined in the TIB_Query
component.
Edit masks, display labels, grid headers, and more are defined in the
TIB_Query component where as the standard DB controls would have this
defined in each control.

A single user application does not really need to worry about
transactions, it's when you have multiple concurrent users that you need
to think about transaction control.

You can use a single query component and fill in the SQL at runtime.
I do this in a few spots myself.
You do however need to load more than just the SQL when doing this.
You need to load the display labels, edit masks, grid headers, etc
unless you are manually setting field labels via a TLabel control.
I use the TIB_Edit control's built in AutoLabel property so that the
displayed field label is taken from the query component.




[Non-text portions of this message have been removed]