Subject Re: [Firebird-Architect] Batch/Block operations
Author Vlad Horsun
> > Very often appliactions repeat this steps
> >
> >isc_alloc_statement2
> >isc_prepare
> >isc_dsql_sql_info (isc_info_sql_stmt_type)
> >isc_dsql_sql_info (isc_info_sql_get_plan)
> >isc_dsql_execute2
> >isc_dsql_set_cursor_name
> >isc_dsql_sql_info (isc_info_sql_records)
> >...
>
> Universal applications (connectivity drivers) - yes.

I talk about it. And it is 95% of all applications ;)

> Specialized -
> no. Such applications know for sure statement type and don't care
> about plan.

Of course

> Setting name of cursor is completely pointless without following
> '...WHERE CURRENT OF...' statements.

Tell it to Jeff Overcash ;)))

BTW Nickolay once said me that Java often used cursor names

> Nevertheless following suggestions are very good. Especially
> eliminating of isc_alloc_statement() call.
>
> > First step may be to merge isc_xxx_info calls into corresponding
> > xxx calls,
> >for example :
> >
> >[isc_alloc_statement2 + ] isc_prepare + isc_dsql_sql_info
> >
> >isc_dsql_execute2 + isc_dsql_sql_info [+ isc_dsql_set_cursor_name]
> >
> >isc_start_transaction + isc_transaction_info
>
> Never used isc_transaction_info. What _useful_ information can it
> return?

Transaction ID. May be in the future we'll return more info about
transaction (for example - ID's of all participants of 2PC transaction).

Regards,
Vlad