Nah, I don't think I would make such a bold statement without first checking that it was correct.
I tested it with cfcatch and cfhttp, but creating a form upload to test if it was also true for cffile seemed like a bit too much work. Thanks for the confirmation though. It wouldn't be the first time I tested something only to find I'd made some stupid fundamental error. Spike >-----Original Message----- >From: [EMAIL PROTECTED] >[mailto:[EMAIL PROTECTED] On Behalf Of Nathan Dintenfass >Sent: Friday, February 13, 2004 8:53 PM >To: [EMAIL PROTECTED] >Subject: Re: [CFCDev] How should I define variable in a CFC? > >I must admit I was skeptical when I first read this, but you >are absolutely correct, at least as far as CFHTTP is >concerned. You CAN var "cfhttp" and keep it safe from race >conditions, as far as my tests show. Sorry if this is >redundant now, but it sounded like you were assuming this to >be true, and I've now tested it, so figured I'd share. > > > > >> From: "Stephen Milligan" <[EMAIL PROTECTED]> >> Reply-To: [EMAIL PROTECTED] >> Date: Fri, 13 Feb 2004 10:44:06 -0800 >> To: <[EMAIL PROTECTED]> >> Subject: RE: [CFCDev] How should I define variable in a CFC? >> >> The problem with cfquery.executiontime is that it is a special >> case/exception to the way ColdFusion treats variables. >> >> cfquery is not a structure. >> >> cfquery.executiontime is a variable with a . in the variable name. >> >> In prior versions of ColdFusion this was fine, but CFMX >automatically >> turns variable declarations with a . in the name into a structure. >> >> In order to turn cfquery.executiontime into a local function scoped >> variable you would have to be able to do this: >> >> <cffunction name="foo"> >> >> <cfset var cfquery.executiontime = ""> <cfset var myquery = ""> >> >> <cfquery datasource="somedsn" name="myquery"> >> SELECT 'blah' >> </cfquery> >> >> </cffunction> >> >> The problem is that CFMX doesn't allow you to var scope a >variable with a . >> in the name. >> >> If you try running the code above it will barf with an error saying: >> >> 'You cannot use a variable reference with "." operators in >this context.' >> >> I'm not 100% sure about all the tag scopes, but cfhttp, cffile, >> cfcatch and cferror are all structures, so you can use the >var keyword >> to locally scope them in a function. >> >> Personally I think that it's a bug that cfquery.executiontime is a >> named variable rather than a structure with a key called >> executiontime. I have filed >> >> Spike >> >>> -----Original Message----- >>> From: [EMAIL PROTECTED] >>> [mailto:[EMAIL PROTECTED] On Behalf Of Sean A Corfield >>> Sent: Friday, February 13, 2004 8:55 AM >>> To: [EMAIL PROTECTED] >>> Subject: Re: [CFCDev] How should I define variable in a CFC? >>> >>> On Feb 13, 2004, at 6:53 AM, Christian Cantrell wrote: >>>> ... and the "cfquery" struct is stored in the variables >scope, which >>>> is why this works: >>>> >>>> <cffunction name="myFunction"...> >>>> ����� <cfset var q = ""/> >>>> ����� <cfquery name="q"> >>>> ����������� SELECT * FROM Users >>>> ����� </cfquery> >>>> ����� <cfset reportExecutionTime()/> >>>> ����� <cfreturn q/> >>>> </cffunction> >>>> >>>> <cffunction name="reportExecutionTime"> >>>> ����� <cflog text="#cfquery.executionTime#"/> </cffunction> >>> >>> Which means that using "cfquery.*" is not thread safe if your CFC >>> instance is in a shared scope. That's not good. >>> >>> What about other 'tag scope' variables like "cfhttp.*" and >"cffile.*"? >>> It sounds like we can't write a CFC to handle file upload and store >>> it in application scope, for instance, since multiple simultaneous >>> requests to upload files would trample on each other's >>> (variables.)cffile.* information? >>> >>>> There does not appear to be a way to scope the "cfquery" >struct just >>>> to the myFunction function. Is this something people feel >they need? >>>> I personally have never had an issue with behavior, but if others >>>> have, we can see about getting it changed. >>> >>> I think that every tag that creates its own 'scope' like this ought >>> to do so as if it were declared with 'var' so that the tags are >>> thread safe... >>> >>> Sean A Corfield -- http://www.corfield.org/blog/ >>> >>> Got Mach II? -- http://www.mach-ii.com/ >>> >>> ---------------------------------------------------------- >>> You are subscribed to cfcdev. To unsubscribe, send an email to >>> [EMAIL PROTECTED] with the words 'unsubscribe cfcdev' >>> in the message of the email. >>> >>> CFCDev is run by CFCZone (www.cfczone.org) and supported by >Mindtool, >>> Corporation (www.mindtool.com). >>> >>> An archive of the CFCDev list is available at >>> www.mail-archive.com/[EMAIL PROTECTED] >> >> ---------------------------------------------------------- >> You are subscribed to cfcdev. To unsubscribe, send an email to >> [EMAIL PROTECTED] with the words 'unsubscribe cfcdev' >> in the message of the email. >> >> CFCDev is run by CFCZone (www.cfczone.org) and supported by >Mindtool, >> Corporation (www.mindtool.com). >> >> An archive of the CFCDev list is available at >> www.mail-archive.com/[EMAIL PROTECTED] >> > >---------------------------------------------------------- >You are subscribed to cfcdev. To unsubscribe, send an email to >[EMAIL PROTECTED] with the words 'unsubscribe cfcdev' >in the message of the email. > >CFCDev is run by CFCZone (www.cfczone.org) and supported by >Mindtool, Corporation (www.mindtool.com). > >An archive of the CFCDev list is available at >www.mail-archive.com/[EMAIL PROTECTED] ---------------------------------------------------------- You are subscribed to cfcdev. To unsubscribe, send an email to [EMAIL PROTECTED] with the words 'unsubscribe cfcdev' in the message of the email. CFCDev is run by CFCZone (www.cfczone.org) and supported by Mindtool, Corporation (www.mindtool.com). An archive of the CFCDev list is available at www.mail-archive.com/[EMAIL PROTECTED]
