Hi Tom,
Tx for you really clear answer, it helped a lot.
I just found the problem and it could indeed be seen as a bug in my code, a=
lthough that very same piece of code works without any problem on MSSQL 2K,=
MSSQL 2K5, MSSQL Express, Oracle 9i, Oracle 10, MySQL 5.0 and MySQL 5.1.
The problem was the following:
When specifying the following statement:
SQLBindParameter(hStmt, 1, SQL_PARAM_INPUT, SQL_C_BINARY, SQL_BINARY, 16,=
0, ValuePtr, 16, &IndPtr)
and the column bound is of binary type (BYTEA, IMAGE, BLOB, ...), the IndPt=
r must contain the length of the data passed in ValuePtr.
In my code I had it set to 0 (because I already specified the length of the=
field in the DataLen parameter), which doesn't seem to work for postgresql.
Regards and have a nice day, Vincent
> To: vincent_dhaene@hotmail.com
> CC: pgdev@xs4all.nl; pgsql-bugs@postgresql.org
> Subject: Re: [BUGS] BUG #3951: SELECT ... WHERE Param =3D ? does not work=
if Param is of type bytea=20
> Date: Thu, 21 Feb 2008 13:30:02 -0500
> From: tgl@sss.pgh.pa.us
>=20
> "Vincent D'Haene" <vincent_dhaene@hotmail.com> writes:
> > My problem is that it seems that in postgresql you can't use a paramete=
r bound to BYTEA data in the WHERE clause of the SQL statement.
>=20
> The above claim is nonsense.
>=20
> > So in my case: "SELECT x FROM T WHERE BinData =3D ?" does not work (ret=
urn code -1) if the parameter bound to the ? is of type BYTEA.
>=20
> I'm guessing that you've got an ODBC problem. That could be a bug in
> your code, or less likely a bug in the ODBC driver you're using.
> Since you haven't specified which driver or which version of the driver
> you're using, nor provided a test case to run, it's difficult for anyone
> else to investigate it.
>=20
> regards, tom lane
_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/=