最后一个问题今晚,依然采用Coldfusion8和MySQL。
我有一个产品表,每个价格A,B和C.我需要检索A,B,C在所有价格(A_min,A_max,B_min,B_max,变量C_min,C_max)的最小值和最大值
我想我会产生通过A,B,C的存储过程和环如下所示:
<cfloop list="A,B,C" index="what" delimiters=",">
<cfstoredproc procedure="proc_search_select_minmax" datasource="dtb">
<cfprocparam type="in" value="#what#" cfsqltype="cf_sql_varchar" maxlength="15">
<cfprocparam type="in" value="#variables.xxx#" cfsqltype="cf_sql_varchar" maxlength="13">
<cfprocparam type="in" value="#variables.yyy#" cfsqltype="cf_sql_varchar" maxlength="13">
<cfprocparam type="in" value="#variables.zzz#" cfsqltype="cf_sql_text" maxlength="4">
<cfprocparam type="out" cfsqltype="cf_sql_decimal" variable="#what#_min">
<cfprocparam type="out" cfsqltype="cf_sql_decimal" variable="#what#_max">
</cfstoredproc>
</cfloop>
这样的想法是运行A,B和C这三次获得变量A_min,A_max,B_min ...圈外。
但我有我的输出参数,这里面的MySQL,我声明了类似的麻烦:
CREATE ... PROCEDURE `proc_search_select_minmax`(..., OUT `outputMin` DECIMAL(12,2), OUT `outputMax` DECIMAL(12,2))
....
SET outputMin = min(what);
SET outputMax = max(what);
ColdFusion的错误说:
Error Executing Database Query
@
<cfprocparam type="out" cfsqltype="cf_sql_decimal" variable="#what#_min">
<cfprocparam type="out" cfsqltype="cf_sql_decimal" variable="#what#_max">
问题:
我必须给我出的参数相同的名称,里面的MySQL或者是正确的顺序就够了吗?
更重要的是,我可以设置输出变量的动态也是这样吗? 如果不是,是否有除了调用存储过程三个不同时代的任何其他方式?