Start logging the value of COOKIE.theID. Just save it somewhere and see if
it's ever an unexpected value.

Adrian

> -----Original Message-----
> From: Qing Xia [mailto:[email protected]]
> Sent: 12 May 2009 20:16
> To: cf-talk
> Subject: my cfqueryparam grievance
> 
> 
> Hello folks,
> 
> I had a pretty strange experience with CFQueryParam today.   Basically,
> I
> have an innocent-looking query:
> <cfquery datasource="#application.myDB#" name="qGetUser">
> *SELECT* username, password
> *FROM* someTable
> *WHERE* someID = <cfqueryparam cfsqltype="CF_SQL_INTEGER" value=
> "#cookie.theID#" maxlength="6">
> </cfquery>
> 
> This query had worked just fine for nearly a year (since I
> cfqueryparamed it
> last summer) until this morning, when it broke.  The error messages
> read:
> 
> *Message:*
> Error Executing Database Query.
> 12 May 2009 01:49:21 PM EDT
> Diagnostics:
> Error Executing Database Query. [Macromedia][SQLServer JDBC
> Driver][SQLServer]Syntax error converting the varchar value '521636a'
> to a
> column of data type int.  The error occurred on line 35.
> 
> That error points to the WHERE statement, and it complains the
> cookie.theID
> is not an integer-but it is!!! *Even the error messages themselves
> which
> contains a CFDump on Cookie scope say it is an integer, of 6 digits!!!*
> Even
> more strangely, the error messages always say ".converting the varchar
> value
> '521636a'." , no matter what the actual cookie.theID value is.  Since
> this
> query is called from a template that logs users in, I got dozens of
> error
> reports, all with this identical error message, even though the actual
> theID
> values were very different.
> 
> When I switched the cfqueryparam cfsqltype to varchar, the error went
> away!!  Of course, the actual data type of the id table column IS
> varchar,
> but I had purposefully made it integer in the cfqueryparam, for code
> "readability" and more control over the incoming value.  L
> 
> The moral of the story, of course, is that the cfsqltype should
> probably
> always match the receiving database table column's data type.  But I am
> just
> curious. why were my values being converted to "521636a".? 6-digit
> integer/varchar values are certainly not out of bounds for SQL int data
> type, so I simply cannot fathom why conversion was done and why it was
> necessary.
> 
> A


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Want to reach the ColdFusion community with something they want? Let them know 
on the House of Fusion mailing lists
Archive: 
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:322445
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4

Reply via email to