[freetds] SQLBindParameter incorrectly binds as varchar
bmidgley at xmission.com
Fri Aug 27 11:01:15 EDT 2004
Is SQLBindParameter being misused here by openldap?
oc_id is an unsigned long and the call is made like:
SQLBindParameter( sth, (SQLUSMALLINT)(1),
SQL_PARAM_INPUT, SQL_C_ULONG, SQL_INTEGER,
0, 0, (SQLPOINTER)(&oc_id), 0,(SQLINTEGER*)NULL )
But rather than being bound as an integer, it's bound as a varchar and
chokes when the query is executed.
> backsql_oc_get_attr_mapping(): error executing at_query
> FROM ldap_attr_mappings WHERE oc_map_id=?"
> for objectClass "inetOrgPerson"
> with param oc_id="1"
> Return code: -1
> Native error code: 257
> SQL engine state: 37000
> Message: [unixODBC][FreeTDS][SQL Server]Implicit
> conversion from datatype 'VARCHAR' to 'NUMERIC' is not allowed. Use the
> CONVERT function to run this query.
I'm using freetds 0.62.4 (to sybase 12.0) and openldap-2.2.15. Also
running redhat packages: unixODBC-2.2.8-126.96.36.199,
More information about the FreeTDS