Ah, thanks guys! What I didn't realize is that you can use unnamed /
unstored prepared statements through the driver. That makes so much more
sense now. So ColdFusion uses dynamically "prepared statements" which are
implemented in the JDBC driver, which is a totally different ballgame from
using the pure SQL interface, which requires you to register them by name
and then reuse or overwrite them per call.
So if I can hunt down the driver syntax for calling that stuff directly can
I just use the Java commands from within my dynamic SQL in a cfquery tag?

It looks like CF probably uses java.sql.PreparedStatement with syntax like
this:

PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES SET SALARY
= ? WHERE ID = ?");

   pstmt.setBigDecimal(1, 153833.00);
   pstmt.setInt(2, 110592);

Does anyone know how I'd just pop that Java into a CFQuery tag? Or can I
probably not because cfquery itself is what handles all of that and will
already be either a Statement or PreparedStatement object depending on
whether it detected any cfqueryparams?

If so, does that mean my only option is writing a custom tag to simulate
cfquery and having it handle all of that stuff the same way cfquery does? (
Retrieve the datasource info from the adminapi, create and manage the
connection, call all of these execution methods and then translate their
results to a CFML query object, etc.

What a hassle. This is worse than the fact that you can't use cfform
controls outside of a cfform tag in CFC cffunctions.

Thanks again.


On Thu, Apr 16, 2009 at 1:33 PM, Dave Watts <dwa...@figleaf.com> wrote:

>
> > So if cfqueryparam is using prepared statements (which my guess would be
> > that it's not), cfqueryparamming all of your variable values would
> improve
> > performance because the statement itself isn't being re-sent to the RDMS
> on
> > each subsequent query, only the values. But if it's not, it could
> actually
> > slightly DIMINISH performance ( because the SQL generated is more verbose
> > because of the variable declarations and binding syntax ).
>
> Your guess is incorrect. CFQUERYPARAM builds a JDBC prepared
> statement. Using CFQUERYPARAM may improve or degrade performance,
> depending on additional factors. The SQL being more verbose is not one
> of those factors.
>
> Dave Watts, CTO, Fig Leaf Software
> http://www.figleaf.com/
>
> Fig Leaf Software provides the highest caliber vendor-authorized
> instruction at our training centers in Washington DC, Atlanta,
> Chicago, Baltimore, Northern Virginia, or on-site at your location.
> Visit http://training.figleaf.com/ for more information!
>
> 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to 
date
Get the Free Trial
http://ad.doubleclick.net/clk;207172674;29440083;f

Archive: 
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:321702
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4

Reply via email to