coldfusion coldfusion-9 cfquery

coldfusion - ¿Hay alguna limitación con el número de consultas/declaraciones que podemos escribir dentro de cftransaction?



coldfusion-9 cfquery (1)

El desplazamiento de la rama tiene que ver con el tamaño del módulo / función. También puede deberse a un gran bloque de código condicional de cfif/cfelse o cfswitch .

Técnicamente, no estoy seguro de si hay algún límite en el no. de consultas que puede colocar dentro del bloque cftransaciton . No tiene nada que ver con la migración de código de CF8 a CF9, sino con la longitud de su código dentro de bloques condicionales.

Me gustaría dividir la función y tratar de poner cada uno de los bloques condicionales de gran tamaño como una función separada dentro de la cfc:

<cffunction name="myFunc1"> <cftransaction action="begin"> <cfif URL.action eq ''add''> <!--- function call with your xxx lines of queries/statements ---> <cfinvoke component="MyCfc" method="firstQueryBlock" result="result1"> <cfelseif URL.action eq ''edit''> <!--- second function call with your yyy lines of queries/statements ---> <cfinvoke component="MyCfc" method="secondQueryBlock" result="result2"> </cfif> <cfif URL.action eq ''add'' or URL.action ''edit''> <!--- third function call with your zzz lines of queries/statements ---> <cfinvoke component="MyCfc" method="thirdQueryBlock" result="result3"> </cfif> </cftransaction> </cffunction>

Hoy mientras solucionaba errores en algún código existente, encontré un error extraño.

Desplazamiento del objetivo de la rama demasiado grande para abreviar

Después de buscar, descubrí que se trata de algo relacionado con la conversión de código de bytes de Java. Aquí están los enlaces que encontré:

En mi caso, cftransaction contiene alrededor de 870 declaraciones y funciona bien. Pero necesito agregar 2 consultas más a esta transacción. Ahora estoy obteniendo este error cuando agrego incluso una línea de código dentro de cftransaction. Actualmente no puedo mover ninguna de las cfquery existentes fuera de la transacción CF.

Aquí está la estructura general del código:

<cftransaction action="begin"> <cfif URL.action eq ''add''> Around 200 lines of queries/statements <cfelseif URL.action eq ''edit''> Around 200 lines of queries/statements </cfif> <cfif URL.action eq ''add'' or URL.action ''edit''> Around 450 lines of queries/statements </cfif> </cftransaction>

¿Hay alguna solución para solucionar este problema?