alrightttttttttttttt
There are all these cfc generators for the cfc, bean & gateways but have no
idea how to interact with them. (thats the basic question here......)
trying to learn my way into doing cfcs better and right now im trying the rds
cfc generated code in eclipse. Starting with the active record one.
I'm also trying to learn cfscript a bit but am kinda lost on how you call the
cfc this way to do the usual crud stuff. I can get it partially functioning on
the inserts (if you dont count any data going in!! haha but the rows are being
made). Im sure I can get it but id rather see some of the better practices.
what would my main starting points be?
if my cfc is:
<cfcomponent output="false" alias="components.test1.test">
<!---
These are properties that are exposed by this CFC object.
These property definitions are used when calling this CFC as a
web services,
passed back to a flash movie, or when generating documentation
NOTE: these cfproperty tags do not set any default property
values.
--->
<cfproperty name="id" type="numeric" default="0">
<cfproperty name="theName" type="string" default="">
<cfproperty name="theEmail" type="string" default="">
<cfscript>
//Initialize the CFC with the default properties values.
variables.id = 0;
variables.theName = "";
variables.theEmail = "";
</cfscript>
<cffunction name="init" output="false" returntype="test">
<cfargument name="id" required="false">
<cfscript>
if( structKeyExists(arguments, "id") )
{
load(arguments.id);
}
return this;
</cfscript>
</cffunction>
<cffunction name="getId" output="false" access="public"
returntype="any">
<cfreturn variables.Id>
</cffunction>
<cffunction name="setId" output="false" access="public"
returntype="void">
<cfargument name="val" required="true">
<cfif (IsNumeric(arguments.val)) OR (arguments.val EQ "")>
<cfset variables.Id = arguments.val>
<cfelse>
<cfthrow message="'#arguments.val#' is not a valid
numeric"/>
</cfif>
</cffunction>
<cffunction name="getTheName" output="false" access="public"
returntype="any">
<cfreturn variables.TheName>
</cffunction>
<cffunction name="setTheName" output="false" access="public"
returntype="void">
<cfargument name="val" required="true">
<cfset variables.TheName = arguments.val>
</cffunction>
<cffunction name="getTheEmail" output="false" access="public"
returntype="any">
<cfreturn variables.TheEmail>
</cffunction>
<cffunction name="setTheEmail" output="false" access="public"
returntype="void">
<cfargument name="val" required="true">
<cfset variables.TheEmail = arguments.val>
</cffunction>
<cffunction name="save" output="false" access="public"
returntype="void">
<cfscript>
if(getid() eq 0)
{
create();
}else{
update();
}
</cfscript>
</cffunction>
<cffunction name="load" output="false" access="public"
returntype="void">
<cfargument name="id" required="true" >
<cfset var qRead="">
<cfquery name="qRead" datasource="ddddddd">
select id, theName, theEmail
from test
where id = <cfqueryparam cfsqltype="CF_SQL_INTEGER"
value="#arguments.id#" />
</cfquery>
<cfscript>
setid(qRead.id);
settheName(qRead.theName);
settheEmail(qRead.theEmail);
</cfscript>
</cffunction>
<cffunction name="create" output="false" access="private"
returntype="void">
<cfset var qCreate="">
<cfset var local1=gettheName()>
<cfset var local2=gettheEmail()>
<cftransaction isolation="read_committed">
<cfquery name="qCreate" datasource="ddddd">
insert into test(theName, theEmail)
values (
<cfqueryparam value="#local1#"
cfsqltype="CF_SQL_VARCHAR" />,
<cfqueryparam value="#local2#"
cfsqltype="CF_SQL_VARCHAR" />
)
</cfquery>
<!--- If your server has a better way to get the ID
that is more reliable, use that instead --->
<cfquery name="qGetID" datasource="dddddd">
select id
from test
where theName = <cfqueryparam value="#local1#"
cfsqltype="CF_SQL_VARCHAR" />
and theEmail = <cfqueryparam value="#local2#"
cfsqltype="CF_SQL_VARCHAR" />
order by id desc
</cfquery>
</cftransaction>
<cfset variables.id = qGetID.id>
</cffunction>
<cffunction name="update" output="false" access="private"
returntype="void">
<cfset var qUpdate="">
<cfquery name="qUpdate" datasource="ddddd" result="status">
update test
set theName = <cfqueryparam value="#gettheName()#"
cfsqltype="CF_SQL_VARCHAR" />,
theEmail = <cfqueryparam
value="#gettheEmail()#" cfsqltype="CF_SQL_VARCHAR" />
where id = <cfqueryparam value="#getid()#"
cfsqltype="CF_SQL_INTEGER">
</cfquery>
</cffunction>
<cffunction name="delete" output="false" access="public"
returntype="void">
<cfset var qDelete="">
<cfquery name="qDelete" datasource="ddddd" result="status">
delete
from test
where id = <cfqueryparam cfsqltype="CF_SQL_INTEGER"
value="#getid()#" />
</cfquery>
</cffunction>
</cfcomponent>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting,
up-to-date ColdFusion information by your peers, delivered to your door four
times a year.
http://www.fusionauthority.com/quarterly
Archive:
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:259200
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe:
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4