Thanks Andrew and AJ. Now I understand - once an object is initialised
in OnApplicationStart
function then it's available in every page. If the object is changed or a
new object is created after app start then we need to
reinitialise/initialise it using something like
http://mysite/?updateapp=true.

On 07/06/07, AJ Mercer <[EMAIL PROTECTED]> wrote:
>
> any code inside the OnApplicationStart function will only run the first
> time the application is run. So if you put in a new CreateObject() you will
> need will need to do the ?updateapp=1
>
> If you change a CFC that has already been created and stored in the
> APPLICATION scope, you will also need to do updateapp=1 as the old version
> will still be there.
>
> On 6/7/07, George Lu <[EMAIL PROTECTED]> wrote:
> >
> > 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]> 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 < [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.
> > >
> > >
> >
> >
> >
>
>
> --
> 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