Subject Re: [IBO] Programmatically grant role to user
Author Helen Borrie
At 07:12 PM 2/03/2006, you wrote:
>--- In, Helen Borrie <helebor@...> wrote:
> > That one is just tooooo simple. If your SQL statement starts with
> > SELECT, you use Open (or, in the case of IB_Cursor, First).
> >
> > All other SQL statements, use Execute.
> >
> > Btw, don't use IB_Query/IBOQuery for executable statements. Use
> > IB_DSQL (best) or IB_Cursor. Because executable statements are not
> > linked to visual controls, there's no problem using these
>components with TIBODatabase as their IB_Connection.
> >
>Thank you Helen
>I will take your advice.
>As a matter of interest, does using IB_DSQL give a speed advantage
>over IBOQuery

Yes, of course!

>or is there a different reason?

A T**query component is designed for use with datasets. Datasets
come from SELECTing sets. Executable statements don't have datasets,
although certain ones, i.e. executable SPs, *do* return a single line
return structure, which you can happily put into a compatible
component - obviously not a grid, list, etc., which are for
multi-line datasets.

Incidentally, did you know that most scalar controls in native IBO
can be bound to input parameters instead of output fields? When you
get the knack of the parameterised statement, you'll want to forget
everything you ever did with the BDE and TTables. Come back in six
months and tell me if I predicted wrongly. :-)

>As I mentioned previously I recently converted from BDE to IBO & to
>date I have mainly used TDatabase/TQuery with TListView's. Is there a
>document/write-up suggesting which IBObject components should be used
>under what circumstances?

Yes. Download the relevant TechInfo sheets. In fact, download them
all. You'll have a crash course in many of the cool things about
Firebird and database apps that your past life has denied you. :-)