The behaviour of this function seems to have changed slightly.

In FB 2.5 this string: 

  SELECT * FROM DEPT_BUDGET(0)

will execute in isc_dsql_execute_immediate without error.


If the server is FB 3.0 and the client is Fb 2.5 this error is thrown:

  Dynamic SQL Error
  -SQLDA missing or incorrect version, or incorrect number/type of
    variables 
  -unknown ISC error 336003111


If the server is Fb 3.0 and the client is Fb 3.0 this error is thrown:

  Dynamic SQL Error
  -SQLDA error
  -Wrong number of parameters (expected 1, got 0)


In all cases isc_dsql_execute_immediate is called with a null xsqlda.

I've tested this with a control statement that does a dummy update. In
all those cases execution succeeds correctly with a null xsqlda.

Obviously select statements are not meant to work with
isc_dsql_execute_immediate. And it is arguable that the old behaviour
was incorrect because it allowed misuse of the function. However, if we
are going to throw an error I think it should be more explicit. Perhaps
something along the lines of:

  'Select statements cannot be execute by isc_dsql_execute_immediate'


Shall I log this as a bug / enhancement request ?



Paul
--
Paul Reeves
http://www.ibphoenix.com
Supporting users of Firebird
 

------------------------------------------------------------------------------
Mobile security can be enabling, not merely restricting. Employees who
bring their own devices (BYOD) to work are irked by the imposition of MDM
restrictions. Mobile Device Manager Plus allows you to control only the
apps on BYO-devices by containerizing them, leaving personal data untouched!
https://ad.doubleclick.net/ddm/clk/304595813;131938128;j
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to