2010-06-22 26 views
5

MS Access arka ucundan mySQL'e geçiyorum. Bu işe yarardı, ama şimdi sorun değil.cfc ve mySQL'de coldfusion sorgusunda tarih zaman istisnası

<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> 

veritabanı alanı datetime ve varsayılan NULL

argüman boş veya bir javascript valide tarih ya bir form alanına doldurulur ayarlanır. Boş form sahada boğulur.

+0

Özel hata nedir? – ale

+0

Bu çıktı istisnasının sebebi şuydu: coldfusion.runtime.locale.CFLocaleBase $ InvalidDateTimeException: açık bir tarih veya zaman dizesidir .. – Saul

cevap

6

DSN ayarları ile size karmaşa önce ben de değiştirmeyi deneyin olur senin şu şekilde <cfqueryparam>:

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

Bu argüman değeri olması durumunda gerçek bir null adlı geçecek boş dize.

+0

Bu beni sıraladı Adam, ty, sorun mySQL sıfır uzunluk dizesini null, Access'in böyle bir özelliği yok! – Saul

1

CF'nin MySQL için JDBC sürücüsünün uygulaması NULL tarihlerini çok iyi işlemez.

Sen

sağ sizi ayarlamak Should

& zeroDateTimeBehavior = convertToNull CF admin (gelişmiş altındadır) DSN bağlantı dizesi ayarlarına bir yapılandırma bayrağı eklemeniz gerekir.

Rob

İlgili konular