I believe it is expecting structure not a comma delimited list.
Change this
>> <cfloop collection="#arguments#" item="key">
>> <cfif StructKeyExists(arguments,key)>
>> <cfset
>> fieldlist=ListAppend(fieldlist,"#key#=#arguments[key]#")>
>> </cfif>
>> </cfloop>
<cfreturn getParticipantGateway().getByFields(#fieldlist#) />
To
<cfloop collection="#arguments#" item="key">
<cfif StructKeyExists(arguments,key)>
<cfset fieldList[key] = arguments[key] />
</cfif>
</cfloop>
<cfreturn getParticipantGateway().getByFields(fieldlist) />
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Byron Raines
Sent: Tuesday, September 25, 2007 3:34 PM
To: [email protected]
Subject: Re: [Reactor for CF] Passing parameters to getByFields
Patrick,
Thanks. Think it does the same thing.
Oops!
*Message* Invalid data {CountyID={2}} for CFSQLTYPE CF_SQL_CHAR.
*Detail*
*Extended Info*
*Tag Context* C:\ColdFusion8\wwwroot\Reactor\base\abstractGateway.cfc
(92)
byron
Patrick McElhaney wrote:
> Try this:
>
> fields = structNew();
> fields['county'] = 2;
> getParticipantGateway().getByFields(fields);
>
> I think ColdFusion is taking getByFields(#fieldlist#) and reducing it
> to getByFields(fieldlist) which ends up as getByFields("County=2").
>
>
> Patrick
>
>
> On 9/25/07, Byron Raines <[EMAIL PROTECTED]> wrote:
>
>> I have a weird problem. I'm using the getByFields() method on a
gateway.
>>
>> getParticipantGateway().getByFields(County=2)
>>
>> I get back the expected results. However, I am constructing the
>> parameter programatically, so I have:
>>
>> getParticipantGateway().getByFields(#fieldlist#) where fieldlist is
>> "County=2".
>>
>> When I run it I get the following error:
>>
>>
>> Oops!
>>
>> *Message* The cause of this output exception was that:
>> coldfusion.tagext.sql.QueryParamTag$InvalidDataException: Invalid
data
>> value CountyID=2 exceeds maxlength setting 5..
>> *Detail*
>> *Extended Info*
>> *Tag Context*
>>
C:\ColdFusion8\wwwroot\Reactor\project\HopeWorks\Queries\mssql_4289702D0
613A72FF692C035734D311D.cfm
>> (1)
>>
>>
>>
>> Further inspection of the query file reveals the following:
>>
>> SELECT [tblParticipant].[Pt_ID] AS [Pt_ID],
[tblParticipant].[Phase]
>> AS [Phase], [tblParticipant].[CountyID] AS [CountyID],
>> [tblParticipant].[Firstname] AS [Firstname],
>> [tblParticipant].[Lastname] AS [Lastname],
[tblParticipant].[Address]
>> AS [Address], [tblParticipant].[City] AS [City],
>> [tblParticipant].[State] AS [State], [tblParticipant].[ZipCode] AS
>> [ZipCode], [tblParticipant].[Phone] AS [Phone],
>> [tblParticipant].[CircleLeaderID] AS [CircleLeaderID],
>> [tblParticipant].[ConsentDate] AS [ConsentDate],
>> [tblParticipant].[CircleLeader] AS [CircleLeader],
>> [tblParticipant].[CC_ID] AS [CC_ID], [tblParticipant].[GroupID] AS
>> [GroupID], [tblParticipant].[Status] AS [Status],
>> [tblParticipant].[PARQ] AS [PARQ], [tblParticipant].[MedicalForm] AS
>> [MedicalForm], [tblParticipant].[DateMedicalFormReturned] AS
>> [DateMedicalFormReturned], [tblParticipant].[FUSurveyDate] AS
>> [FUSurveyDate], [tblParticipant].[Cortisol] AS [Cortisol],
>> [tblParticipant].[Notes] AS [Notes] FROM [tblParticipant] AS
>> [tblParticipant] WHERE [tblParticipant].[Pt_ID] = <cfqueryparam
>> cfsqltype="cf_sql_char" maxlength="5"
>> value="#arguments.Query.getValue(1)#" />
>>
>> Is there a way to dynamically construct the parameter to go in the
>> method. For example: I might dynamically create
"County=2,Group=1".
>> I'm trying to keep from having to have different functions for each
>> possible combination of filter variables.
>>
>> Here is the function I'm using:
>>
>> <cffunction name="getParticipants" access="public"
>> returntype="query" output="false">
>> <cfargument name="CountyID" type="numeric" required="false"
/>
>> <cfargument name="GroupID" type="numeric" required="false" />
>> <cfargument name="CircleLeaderID" type="string"
required="false" />
>>
>> <cfset fieldlist = "" />
>>
>> <cfloop collection="#arguments#" item="key">
>> <cfif StructKeyExists(arguments,key)>
>> <cfset
>> fieldlist=ListAppend(fieldlist,"#key#=#arguments[key]#")>
>> </cfif>
>> </cfloop>
>>
>> <cfreturn getParticipantGateway().getByFields(#fieldlist#) />
>>
>> </cffunction>
>>
>> Any help would be appreciated.
>>
>> Byron
>>
>>
>>
>> -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- -- -- --
>> Reactor for ColdFusion Mailing List
>> [EMAIL PROTECTED]
>> Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
>> -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- -- -- --
>>
>>
>>
>
>
>
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- -- --
Reactor for ColdFusion Mailing List
[EMAIL PROTECTED]
Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- -- --
****************************************************************************
This email may contain material confidential to
Pearson. If you were not an intended recipient,
please notify the sender and delete all copies.
We may monitor email to and from our network.
****************************************************************************
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Reactor for ColdFusion Mailing List
[EMAIL PROTECTED]
Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --