You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I see no bug there. While DSQL_drop\DSQL_close *looks* like bit flags, they can not be combined in any way.
More, IB6 ApiGuide says:
---------------------------------------------------------------------------------
isc_dsql_free_statement()
Frees a statement handle and all resources allocated for it, or closes a cursor associated
with the statement referenced by a statement handle.
...
Description
isc_dsql_free_statement() either frees a statement handle and all resources allocated for it (option = DSQL_drop),
or closes a cursor associated with the statement
(option = DSQL_close).
Note
isc_dsql_free_statement() does nothing if it is called with an option value other than DSQL_drop or DSQL_close.
---------------------------------------------------------------------------------
You see - user can use one opton *or* another and nothing else.
Submitted by: @ibprovider
As I understand, DSQL_drop constant presents the FLAG of operation, not ID of operation.
However, in some cases, instead of checking the flag DSQL_drop, used a direct comparison with DSQL_drop
[GDS_DSQL_FREE] [why.cpp]
[GDS_DSQL_FREE] [interface.cpp]
[Stack]
fbclient_d.dll!REM_free_statement(int * user_status=0x0249e470, Rsr * * stmt_handle=0x00612e2c, unsigned short option=2) Line 1960 C++
> fbclient_d.dll!isc_dsql_free_statement(int * user_status=0x0249e470, void * * stmt_handle=0x042db448, unsigned short option=2) Line 3348 C++
_IBProvider_v3_vs2013_d.dll!IBP_ISC_API__dsql_free_statement(isc_base::t_isc_provider * isc_provider=0x040ceed8, isc_base::t_isc_connection * isc_connection=0x040cf3c0, isc_base::t_isc_status_vector & arg1__status_vector={...}, void * * arg2__stmt_handle_ptr=0x042db448, unsigned short arg3__op_id=2) Line 209 C++
The text was updated successfully, but these errors were encountered: