> should I not worry about running 'createObject' on the same local.o_program > structure member everytime?
The fact that createObject is INSIDE the loop is precisely why it is working now and that is good. When you posted your first "real" code sample (the second one) with the createObject outside the loop you were only creating one instance of your CFC and reusing it over and over. That is not what you wanted. If you have 7 "programs", than you need to create 7 objects. > It's not completely obvious to me how 'local' magic is working. It's not magic really. When you place anything (like a CFC) in the application scope it is shared by all running requests. This is the same as a database table that is being used by several requests at once. Changes made by one request will be visible to any other request looking in the table. Think of a CFC in the application scope the same way. There are 3 main scopes in a CFC-- this, variables, and local. This and variables are shared by everyone calling methods on that CFC. Local is specific to a particular method call. If this still does not make sense, PLEASE ask questions now and get it cleared up or you will be asking for pain down the road when your app starts crashing under load due to concurrency issues because you didn't understand how to make thread-safe singletons. Print this off, read it, and post it on your cube wall: http://www.coldfusionjedi.com/downloads/cfcscopes.pdf > And is there not a memory leak issue with running createObject on every > iteration? I'm not sure what you're asking here but the short answer is "no". Now, creating objects DOES consume a nominal amount of memory-- this is true, but that is not a "memory leak". There was a recent memory leak fixed in the last cumulative hot fix for CF8 that had to do with placing CFCs in shared scopes. I don't see how it would affect your code, but if you want to, you can install the hot fix. > Should my previous version have worked? Which one? *The very first code you posted was somewhat usable. It would have created a separate object for each record except for the fact that you had some syntax errors [arrayNew()] and didn't locally var your variables. *The second code sample you sent only used one program object and still didn't use locally-scoped variables. *Your third code sample is getting closer yet, but still not correct. You need to locally scope ALL VARIABLES THAT ARE SPECIFIC TO THAT METHOD CALL. This includes "q_programs". Otherwise two people running this code at the exact same time will be sharing the exact same contents of the q_programs variable since is in the variables scope by default. > I don't mind doing this 'local' trick everywhere, but I am curious about why > the original wasn't working properly. It's hard to say since your first code sample seemed to be altered-to-protect-the-innocent to the point that you significantly changed the flow of the code. However, I would guess that your first iteration of the code did not work because you were not creating a new program object for every record in your result set. One more thing, I would stay away from duplicating your CFCs. It might work in some scenarios, but duplicate is a deep-copy and that can mean bad things if your CFC has references to a framework or some other complex variable that you do not actually wish to copy. ~Brad ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Want to reach the ColdFusion community with something they want? Let them know on the House of Fusion mailing lists Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:329658 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4

