Skip to Content.
Sympa Menu

freetds - [freetds] SQLBindParameter incorrectly binds as varchar

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: Brad Midgley <bmidgley AT xmission.com>
  • To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
  • Subject: [freetds] SQLBindParameter incorrectly binds as varchar
  • Date: Fri, 27 Aug 2004 09:01:15 -0600

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
"SELECT
name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_return,sel_expr_u
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-2.3.0.2, unixODBC-devel-2.2.8-2.3.0.2

--
Brad




Archive powered by MHonArc 2.6.24.

Top of Page