Listing 1

<CFCOMPONENT>

<!--- List employees --->
<CFFUNCTION NAME="List"
            RETURNTYPE="query"
            OUTPUT="false">
 <!--- Get data --->
 <CFQUERY NAME="employees"
          DATASOURCE="CompanyInfo">
 SELECT Emp_ID, LastName, FirstName
 FROM Employee
 ORDER BY LastName, FirstName
 </CFQUERY>
 <!--- Return data --->
 <CFRETURN employees>
</CFFUNCTION>

<!--- Update an employee --->
<CFFUNCTION NAME="Update"
            RETURNTYPE="boolean"

            OUTPUT="false">
 <!--- Arguments --->
 <CFARGUMENT NAME="Emp_ID"
             TYPE="numeric"
             REQUIRED="yes">
 <CFARGUMENT NAME="LastName"
             TYPE="string"
             REQUIRED="yes">
 <CFARGUMENT NAME="FirstName"
             TYPE="string"
             REQUIRED="yes">

 <!--- The update --->
 <CFQUERY DATASOURCE="CompanyInfo">
 UPDATE Employee
 SET LastName = '#ARGUMENTS.LastName#’,
     FirstName = '#ARGUMENTS.FirstName#’
 WHERE Emp_ID = #ARGUMENTS.Emp_ID#
 </CFQUERY>
 <CFRETURN true>
</CFFUNCTION>

</CFCOMPONENT>

Listing 2

<!--- Get employee object --->
<CFOBJECT COMPONENT="emp" NAME="emp">

<!--- Initialize employee --->
<CFSET emp.Init(22)>

<!--- Display details --->
<CFOUTPUT>
Name:
#emp.GetName()#<BR>
Start Date:
#DateFormat(emp.GetStartDate())#<BR>
Years With Us:
#emp.GetYears()#<BR>
Company Car:
#YesNoFormat(emp.EligibleForCar())#<BR>
</CFOUTPUT>

Listing 3

<CFCOMPONENT>

<!--- Initialize --->
<CFFUNCTION NAME="Init"
            RETURNTYPE="boolean"
            OUTPUT="no">
 <CFARGUMENT NAME="emp_id"
             TYPE="numeric"
             REQUIRED="yes">
  <!--- Get employee info --->
  <CFQUERY NAME="THIS.emp"
           DATASOURCE="CompanyInfo">
  SELECT Emp_ID, LastName, FirstName,
                 StartDate, Dept_Name
  FROM Employee, Departmt
  WHERE Employee.Dept_ID = Departmt.Dept_ID
   AND emp_id = #ARGUMENTS.emp_id#
  </CFQUERY>
 <CFRETURN true>
</CFFUNCTION>

<!--- Get employee name --->
<CFFUNCTION NAME="GetName"
            OUTPUT="no"
            RETURNTYPE="string">
 <CFRETURN "#THIS.emp.LastName#,
            #THIS.emp.FirstName#">
</CFFUNCTION>

<!--- Get employee first name --->
<CFFUNCTION NAME="GetFirstName"
            OUTPUT="no"
            RETURNTYPE="string">
 <CFRETURN THIS.emp.FirstName>
</CFFUNCTION>

<!--- Get employee last name --->
<CFFUNCTION NAME="GetLastName"
            OUTPUT="no"
            RETURNTYPE="string">
 <CFRETURN THIS.emp.LastName>
</CFFUNCTION>

<!--- Get employee start date --->
<CFFUNCTION NAME="GetStartDate"
            OUTPUT="no"
            RETURNTYPE="date">
 <CFRETURN THIS.emp.StartDate>
</CFFUNCTION>

<!--- Get years with us --->
<CFFUNCTION NAME="GetYears"
            OUTPUT="no"
            RETURNTYPE="numeric">
 <CFRETURN DateDiff("yyyy",
                    THIS.emp.StartDate,
                    Now())>
</CFFUNCTION>

<!--- Determine if eligible for car --->
<CFFUNCTION NAME="EligibleForCar"
            OUTPUT="no"
            RETURNTYPE="numeric">
 <CFSET VAR eligible=FALSE>
 <CFIF GetYears() GTE 5>
  <CFSET eligible=TRUE>
 </CFIF>
 <CFRETURN eligible>
</CFFUNCTION>

</CFCOMPONENT>