Subject Re: SV: [firebird-support] ODBC queries with parameters failing
Author Kurt Fitzner
On 28/02/2013 10:52 AM, Mark Rotteveel wrote:
>
> Are you using Firebird 2.5? If not it won't work, as SQL_NULL as a
>
> parameter datatype was only introduced in Firebird 2.5.
> You may want to check if your client library is up-to-date and if the
> Firebird ODBC Driver supports the SQL_NULL type for parameters.
>
I'm using the latest (2.01) ODBC driver which I have pointed to the 2.5
embedded client. I don't know if the ODBC driver supports the SQL_NULL
type. There's no reference to the type in the change log, and that goes
back to 2004.

As a suggestion, if any devs look at this, it would be nice if the ODBC
driver came with the embedded client built in, along with a way to
create a new DB easily. It already has the ability to do a lot of other
DB housekeeping. This would make it way easier for casual use.

> In all other cases the workaround IIRC is to cast the parameter to a
> specific type, for example:
>
> select col1 from table1 where (col 1 = ? or CAST(? AS CHAR(1)) is null)
>
This is working fine for me now, thanks.

> > The Jaybird JDBC works just fine on the same query. It's so sluggish,
> > though, I really need ODBC to work.
>
> Could you define sluggish, what is the size of the dataset? The problem
> with Base is that it expects a specific behavior that is not defined in
> JDBC, and is generally discouraged and especially with Jaybird can be
> detrimental (for example expecting holdable resultsets over commits which
> essentially means 'keep everything in memory').
>
The dataset isn't very large. It's only about 1500 rows. But each row
is quite large, and the queries are relatively complex. I'm quite
willing to believe the problem is in the way OOo/LO Base interacts with
JDBC. No JDBC driver, including the build-in HSQLDB, works very
efficiently in Base.

Thanks for your help.

Kurt.




[Non-text portions of this message have been removed]