Subject Re: [Firebird-Architect] RFC: External Engine API
Author Vlad Khorsun
> Roman Rokytskyy escreveu:
>>> So I'm proposing a C++ friendly interface, accessible by C and others
>>> languages and future compatible with a C++ client API.
>>>
>>
>> What exactly means "future compatible with C++ client API"?
>>
> Aren't we going to somewhere in the future have a C++, JDBC-like (!=
> identical) API?

I don't know

> Attachment and Transaction will be equivalent to Connection.

Why ? Are you going to disable multiply active transaction at one
attachment ?

...
>> There's one issue with such model - it requires TLS in plugin.
> Where you see TLS required? All handles are accessible via structures
> passed by the engine to the plugin.
> Way to obtain connection and transaction handle is encapsulated inside
> ExternalContext.
>
>> I like Vlad's idea of having special DPB/TPB parameters for a current
>> attachment/transaction more attractive. Do you have any objections to it?
> AFAIU, this requires TLS.

It is implemented in B2_1_ExecStmt branch and not requires TLS.

> But I have no problem to have this, also it's in my plans to have it.
> It makes connection to database automatically usable in Delphi, for example.
>
> For the transaction obtained via special TPB, what should be the
> behavior of COMMIT and ROLLBACK? Should it act in a savepoint?

It is not allowed as transaction must be finished where it was started.
I.e. if client application started transaction - client application must finish it.
Another DBMS's may have own behavior, but in FB\IB it always worked
this way.

Regards,
Vlad