2010-06-22 13 views
5

Paso de un servidor de MS Access a mySQL. Esto solía funcionar pero ahora no funciona y no puedo entender el problema.Excepción de fecha y hora en la consulta de ColdFusion en cfc y mySQL

<cfargument required="false" name="expiry" type="any" default="" /> 


     <cfquery datasource='#arguments.dsn#'>  
      INSERT INTO users(expiry) 
      VALUES (<cfqueryparam value="#arguments.expiry#" cfsqltype="CF_SQL_TIMESTAMP"/>) 
     </cfquery> 

El campo de base de datos se establece en fecha y hora y por defecto NULL

El argumento se rellena a partir de un campo de formulario que está vacío, o una fecha javascript validado. Ahoga en formfield vacío.

+0

¿Cuál es el error específico? – ale

+0

La causa de esta excepción de salida fue que: coldfusion.runtime.locale.CFLocaleBase $ InvalidDateTimeException: on es una cadena de fecha u hora no válida. – Saul

Respuesta

6

Antes de meterse con la configuración de DSN, también me trate de cambiar su <cfqueryparam> a lo siguiente:

<cfqueryparam value="#arguments.expiry#" cfsqltype="CF_SQL_TIMESTAMP" null="#len(arguments.expiry) eq 0#" /> 

Esto pasará un cierto nulo en el caso de que el valor del argumento es una cuerda vacía.

+0

Esto solucionó el problema de Adam, ty, mySQL no puso una cadena de longitud cero como null, Access no tiene tales reparos !! – Saul

1

La implementación de CF del controlador JDBC para MySQL no maneja las fechas NULL muy bien.

es necesario agregar una bandera de configuración para la configuración de cadena de conexión DSN (bajo avanzado) en el administrador CF

& zeroDateTimeBehavior = convertToNull

deben establecer su derecha.

Rob

Cuestiones relacionadas