by argoneus » 11 Jul 2008, 02:30
> hello,
>
> we've noticed with poco-1.3.2-data in Parameter.cpp the position of the first parameter is 0, not 1, as is expected in the ODBC Param() functions. none of our ODBC drivers work with the poco-1.3.2 ODBC code, as it doesn't make it past the parameter binding code.
>
> we've tested with iODBC on Mac OS X and Linux.
>
> this seems to be fixed in trunk, but hasn't been backported to 1.3.3.
>
> my question is: will this be fixed in 1.3.3?
>
> Also, as a follow-up: when will 1.3.3 be released?
>
> thanks,
>
> nick
Alex,
Thanks for the prompt reply and fix. I downloaded the 1.3.3 branch from SVN, revision 667, and tried this with our database creation app (the same app works fine with our own ODBC implementation, but we recently began using Poco::Data ODBC).
I'm using the SQLiteODBC driver (www.ch-werner.de/sqliteodbc) for testing.
The issue still seems to be with parameter binding: I traced through the code with gdb, and the parameter binding code doesn't correctly set the number of parameters to bind in the StatementHandle in the constructor for Parameter.cpp. The call to SQLDescribeParam() doesn't return SQL_SUCCESS, since the position passed (1) is greater than the number of parameters to bind (which is 0, and should be 4).