George,

 

The answer is yes, but in your case it is no. The reason being is that if
you are using DataMgr.cfc and have made changes then yes, this has to
reinitialised for the changes to take effect. So in your case
http://mydomain/?updateapp=true when you have made changes will solve that
problem for you.

 



Andrew Scott
Senior Coldfusion Developer
Aegeon Pty. Ltd.
www.aegeon.com.au
Phone: +613  8676 4223
Mobile: 0404 998 273

 

 

From: cfaussie@googlegroups.com [mailto:[EMAIL PROTECTED] On Behalf
Of George Lu
Sent: Thursday, 7 June 2007 2:34 PM
To: cfaussie@googlegroups.com
Subject: [cfaussie] Re: Application object

 

But I've been told if I change the object in cfc I have to init the object
again in myPage.cfm so the change'll happen. Is that true?

On 07/06/07, AJ Mercer <[EMAIL PROTECTED]> wrote:

no, because if the APPLICATION scope does not exist OnApplicationStart ()
will be fired

 

On 6/7/07, George Lu <[EMAIL PROTECTED]> wrote:

Thanks AJ. But for the objects, do I need to do something like this on
myPage.cfm?

<cfif NOT isDefined("Application.surveyDAO")>
    <cfset Application.surveyDAO = createObject("component","
intranet.hr.survey.components.surveyDAO").init("HR") />
</cfif>

in the event the object is not initialised.

 

On 07/06/07, AJ Mercer <[EMAIL PROTECTED]> wrote:

As per A.S. loose (delete/remove/cut/destroy) these lines in onRequestStart

            <cfset request.componentPath = variables.componentPath />
            <cfset request.surveyGateway = Application.surveyGateway />
            <cfset request.surveyDAO = Application.surveyDAO />

move these to OnApplicationStart 
            <cfset request.dsn = variables.dsn />
            <cfset application.root = "/Intranet" />
and change request to application for the dsn
            <cfset APPLICATION.dsn = variables.dsn />

Then in you code, reference
   Application.surveyDAO1
   Application.hrSurveyObj 
   APPLICATION.dsn

So what you end up with is all the APPLICATION wide variables are defined as
set in OnApplicationStart().

No need to copy them into the REQUEST scope

 

On 6/7/07, George Lu <[EMAIL PROTECTED]> wrote:

Hi AJ,

That's what I did in application.cfc (see attached file as requested by
Andrew).

On 07/06/07, AJ Mercer < [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> >
wrote:

Hi George,

I think you are after something more like this: 

   <cffunction name="OnApplicationStart">
        <cfset Application.surveyDAO =
createObject("component",variables.componentPath &
".components.surveyDAO").init(variables.dsn) />
        <cfset Application.hrSurveyObj = CreateObject("component","
CFC.DataMgr").init("HR","MSSQL") /> 
    </cffunction>

<cffunction name="onRequestStart" returnType="boolean">
        <cfargument type="String" name="targetPage" required="true" /> 
           
        <cfif isDefined("url.updateapp")>
            <cfset result = onApplicationEnd() />
            <cfset result = onApplicationStart() />
        </cfif> 

        <cfreturn true>
    </cffunction> 

If the URL.updateapp exists - it will call onApplicationStart which will
initialise your object for you.

Then you can use Application.surveyDAO anywhere in you application

 

On 6/7/07, Andrew Scott < <mailto:[EMAIL PROTECTED]>
[EMAIL PROTECTED]> wrote:

Looks like Peter got to youJ 

 

If you set the Object up in onApplicationStart, there is no need and I mean
this!! No need to copy the Application.surveyDAO to the request scope.

 

I would really like to know who is teaching people to do this, can you
imagine 1000 users hitting the application and how many extra ram is wasted
by such a method.. Peter might like doing this and wasting valuable
resources, but it should not be a practice taken upon.

 

If you want to email me your application.cfc, I will modify it and get it to
work for you.



Andrew Scott
Senior Coldfusion Developer
Aegeon Pty. Ltd.
www.aegeon.com.au
Phone: +613  8676 4223
Mobile: 0404 998 273

 

 

From: cfaussie@googlegroups.com [mailto:[EMAIL PROTECTED] On Behalf
Of George Lu
Sent: Thursday, 7 June 2007 12:57 PM
To: cfaussie@googlegroups.com
Subject: [cfaussie] Re: Application object

 

No, I've tried Andrew's method:

     <cffunction name="onRequestStart" returnType="boolean">
        <cfargument type="String" name="targetPage" required="true" /> 
            
        <cfif isDefined("url.updateapp")>
            <cfset result = onApplicationEnd() />
            <cfset result = onApplicationStart() />
        </cfif> 

            <cfset request.componentPath = variables.componentPath />
            <cfset request.surveyDAO = Application.surveyDAO />
            <cfset request.dsn = variables.dsn />

        <cfreturn true>
    </cffunction> 

and the same error again.

On 07/06/07, George Lu <[EMAIL PROTECTED]> wrote:

Dale, 

I put the application scope on top of the page then it works. Maybe I should
do it as Andrew suggested. Thanks everyone.

 

On 07/06/07, Dale Fraser <[EMAIL PROTECTED]> wrote:

Are you sure it got created.

 

Possibly added the OnApplicationStart code after the app was already
started.

 

Dump the Application scope and see of the surveyDAO exists in it.

 

Regards

Dale Fraser

 

http://dalefraser.blogspot.com

 

From: cfaussie@googlegroups.com [mailto:[EMAIL PROTECTED] On Behalf
Of George Lu
Sent: Thursday, 7 June 2007 12:32 PM
To: CFAussie Mailing List
Subject: [cfaussie] Application object

 

Hi,

I create an object in Application.cfc and put it in the application scope.
When I use it in other pages it comes up this error:


Element SURVEYDAO is undefined in a Java object of type class
[Ljava.lang.String; referenced as



The object in application.cfc:
    <cffunction name="OnApplicationStart">
        <cfset Application.surveyDAO =
createObject("component",variables.componentPath &
".components.surveyDAO").init(variables.dsn) />
        <cfset Application.hrSurveyObj = CreateObject("component","
CFC.DataMgr").init("HR","MSSQL") />
    </cffunction>

The code causing the error:
<cfset Application.surveyDAO.delete(url.userID) />

Please help!

George

 

 

 

 

 

 




-- 

If you are not living on the edge,
You are taking up too much space.











-- 
If you are not living on the edge,
You are taking up too much space.








-- 
If you are not living on the edge,
You are taking up too much space.





--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"cfaussie" group.
To post to this group, send email to cfaussie@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cfaussie?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to