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_4289702D0613A72FF692C035734D311D.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/
> -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
> --
>
>
--
Patrick McElhaney
704.560.9117
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Reactor for ColdFusion Mailing List
[EMAIL PROTECTED]
Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --