2010-06-22 5 views
5

Ich ziehe von einem MS Access-Back-End zu mySQL. Das hat früher funktioniert, aber jetzt nicht und ich kann das Problem nicht erkennen.Datum Zeit Ausnahme in Coldfusion Abfrage in cfc und 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> 

Das Datenbankfeld wird auf Datumzeit und Standard NULL gesetzt

Das Argument von einem Formularfeld aufgefüllt wird, der entweder leer ist, oder ein JavaScript validierten Datum ist. Es erstickt auf leerem Formfeld.

+0

Was ist der spezifische Fehler? – ale

+0

Die Ursache dieser Ausgabe Ausnahme war, dass: coldfusion.runtime.locale.CFLocaleBase $ InvalidDateTimeException: on ist ein ungültiges Datum oder Zeit Zeichenfolge .. – Saul

Antwort

6

Bevor Sie Schlamassel mit den DSN-Einstellungen, würde ich auch versuchen, Ihre wechselnden <cfqueryparam> auf die folgenden:

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

dies eine echte Null im Fall passieren, dass das Argument Wert ein ist leerer String.

+0

Dies sortiert mich aus Adam, ty, Problem wurde mySQL nicht eine Nulllänge Zeichenfolge als a null, Access hat keine solchen Bedenken !! – Saul

1

CFs Implementierung des JDBC-Treibers für MySQL verarbeitet NULL-Daten nicht sehr gut.

Sie benötigen eine Config-Flag auf Ihre DSN Verbindungszeichenfolge-Einstellungen (unter Fortgeschrittene) im CF-Admin hinzufügen

& zeroDateTimeBehavior = convertToNull

Sollten Sie richtig eingestellt.

Rob