-
<!--- readSearch() --->
-
<cffunction name="readSearch" returntype="struct" output="false" access="package" hint="Returns data that match the specified criteria">
-
<cfargument name="SearchCrit" type="struct" required="true" hint="A structure representing the search criteria" />
-
<cfargument name="StartRow" type="numeric" required="true" hint="First row of results" />
-
<cfargument name="EndRow" type="numeric" required="true" hint="Last row of results" />
-
<cfset var returnStruct = StructNew() />
-
<cfset var SqlCols = '' />
-
<cfset var SqlTableClause = '' />
-
<cfset var SqlWhere = '' />
-
<cfset var SqlOrderBy = '' />
-
<!--- columns --->
-
<cfsavecontent variable="SqlCols">
-
ID, Name, Active, Caption, Testimony, StampReceived, Stamp </cfsavecontent>
-
<!--- tables --->
-
<cfsavecontent variable="SqlTableClause">
-
Testimonials
-
</cfsavecontent>
-
<!--- conditions --->
-
<cfoutput>
-
<cfsavecontent variable="SqlWhere">
-
ID > 0
-
<cfif Len(Arguments.SearchCrit.Name)>
-
AND name LIKE '%#Arguments.SearchCrit.Name#%'
-
</cfif>
-
<cfif Len(Arguments.SearchCrit.Testimony)>
-
AND Testimony LIKE '%#Arguments.SearchCrit.Testimony#%'
-
</cfif>
-
AND active = #Arguments.SearchCrit.Active#
-
</cfsavecontent>
-
</cfoutput>
-
<!--- order --->
-
<!--- TODO: update to support multiple ORDER BY columns --->
-
<cfoutput>
-
<cfsavecontent variable="SqlOrderBy">
-
<cfif Len(Arguments.SearchCrit.OrderBy)>
-
#Arguments.SearchCrit.OrderBy#
-
<cfif Len(Arguments.SearchCrit.OrderDirection)>
-
#Arguments.SearchCrit.OrderDirection#
-
</cfif>
-
</cfif>
-
</cfsavecontent>
-
</cfoutput>
-
<cfstoredproc procedure="sproc_paging" datasource="#Application.DSN.LDC#">
-
<cfprocparam type="In" cfsqltype="CF_SQL_VARCHAR" dbvarname="Columns" value="#Trim(SqlCols)#">
-
<cfprocparam type="In" cfsqltype="CF_SQL_VARCHAR" dbvarname="TableClause" value="#Trim(SqlTableClause)#">
-
<cfprocparam type="In" cfsqltype="CF_SQL_INTEGER" dbvarname="StartRow" value="#Arguments.StartRow#">
-
<cfprocparam type="In" cfsqltype="CF_SQL_INTEGER" dbvarname="EndRow" value="#Arguments.EndRow#">
-
<cfprocparam type="In" cfsqltype="CF_SQL_VARCHAR" dbvarname="SqlWhere" value="#Trim(SqlWhere)#">
-
<cfprocparam type="In" cfsqltype="CF_SQL_VARCHAR" dbvarname="SqlOrderBy" value="#Trim(SqlOrderBy)#">
-
<!--- return data + count --->
-
<cfprocresult name="rs" resultset="1">
-
<cfprocresult name="recordcount" resultset="2">
-
</cfstoredproc>
-
<cfset returnStruct.rs = rs />
-
<cfset returnStruct.rc = recordcount.countAll />
-
<cfreturn returnStruct />
-
</cffunction>