>> BTW, what would be the new API methods to support it?
> They will be added later, once Alex commits his changes detaching
> cursor/resultset from the statement itself.

That's done. A few words about API and related changes.

Prior we had allocateStatement() function which was used to create empty 
statement handle, which might be prepared after it. Now 
allocateStatement() is missing at all, instead attachment's function 
prepare() is the only way to create IStatement interface. That means 
that we do not have unprepared statements, each created statement is 
always prepared. If one needs to execute something w/o prepare, he can 
use IAttachment methods for it.

Instead of single function execute(), which was used for all kinds of 
statements, now we have 2 different functions - execute() and 
openCursor(). execute() is used for all kinds of statements that do not 
create output cursors. For statements with output cursor openCursor() is 
used (ptr to IResultSet interface is returned by this function). Some 
statemets (namely singletone select and exec procedure) may be executed 
by any if this functions on your choice.

Functions execute() and openCursor() are present in both IStatement and 
IAttachment with slightly different set of parameters - in IAttachment 
text of SQL request is passed directly to this functions. I.e. 
att->execute() is a replacement for former execute immediate, and 
att->openCursor() is a kind of new feature - one can open cursor 
(resultset) immediately, without explicit prepare step. And yes - 
information about columns returned is available directl;y from created 
this way resultset.

The last big modification is that now we do not need to generate BLR to 
support messages-based API. All formats of messages, moving to/from 
user, is described in uniform way using IMessageMetadata interface - 
expanded IParametersMetadata interface. This should make use of messages 
API in client programs as simple as it was with SQLDA, but at the same 
time as efficient as can be use of messages. I.e. please treat 
IMessageMetadata as a replacement of SQLDA in new API.



------------------------------------------------------------------------------
The Go Parallel Website, sponsored by Intel - in partnership with Geeknet, 
is your hub for all things parallel software development, from weekly thought 
leadership blogs to news, videos, case studies, tutorials, tech docs, 
whitepapers, evaluation guides, and opinion stories. Check out the most 
recent posts - join the conversation now. http://goparallel.sourceforge.net/
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to