29 junio 2012

Inicializar un QueryNew con datos en CF10 (y 9.02)

En un post original de Matt Gifford leí sobre la nueva sintaxis de QueryNew que existe desde CF9.02 y CF10.

Los que somos más viejos en esto, nos acostumbramos a que si queremos llenar de datos iniciales un objeto tipo query definido en tiempo de ejecución, teníamos que popularlo dentro de un ciclo, con un QueryAddRow y luego QuerySetCell en cada vuelta del ciclo.

O podemos hacerlo ahora con la funcionalidad extendida del QueryNew:


<cfscript>
qryPeople = queryNew(
'firstname, lastname, email',
'varChar, varChar, varChar',
[
{
firstname : 'Matt',
lastname : 'Gifford',
email : 'me@monkeh.me'
},
{
firstname : 'Dave',
lastname : 'Ferguson',
email : 'never@doingitwrong.com'
},
{
firstname : 'Scott',
lastname : 'Stroz',
email : 'angry@stackover.flow'
}
]
); </cfscript>


25 junio 2012

Recuperar la clave del CFIDE/Administrator de ColdFusion10

Parece que es muy sencillo recuperar o cambiar la clave del CFIDE/Administrator en Coldfusion10.  solo hay que ejecutar el .bat en la carpeta \ColdFusion10\cfusion\bin\ passwordreset.bat (.rsh para linux/mac).   Después de eso, hay que ingresar nuevamente al CFIDE/Administrator para crear una clave nueva.

19 junio 2012

Funcionalidad No Documentada de ColdFusion 10: Arreglos de Form Fields

El artículo original se lo leí a Raymond Camden.
Lo normal cuando se hace submit de un form en ColdFusion, el request que recibe el form scope, lo recibe como una estructura donde el FIELDNAME es el nombre del campo en el formulario, y NAME son los valores, separados con coma, digitados para ese campo.   El conflicto se hace cuando hay varios campos en el formulario que tienen el mismo nombre.  Tenemos casos como este:


<cfdump var="#form#"> <form method="post"> <input type="text" name="name"> <input type="text" name="name"> <input type="submit"> </form>


El ejemplo de Ray Camden dice:
Esto es lo que se recibe en la estructura si en un campo digitan RAY y en el otro CAMDEN.
Pero cómo interpretar si lo que se recibe es:
Qué es lo que digitó el usuario?.  Digitó CAMDEN,RAY en un campo y FOO en otro ?.. o digitó CAMDEN en uno y RAY,FOO en otro ?
Si por la razón que sea, no se nos permite utilizar distintos nombres de campo para cada entrada, entonces ColdFusion 10 ofrece una solución muy sencilla:
En el application.cfc incluimos
this.sameformfieldsasarray=true;
de aquí en adelante, un submit con el anterior nos retornará, en la estructura bajo NAME, un arreglo con todos los valores digitados.  
No lo he probado.. por favor me cuentan como les va.