使用Coldfusion 10 ORM时,不支持的数据转换错误

时间:2014-01-16 22:44:15

标签: orm coldfusion coldfusion-10

尝试使用ORM加载对象时收到以下错误:

[Macromedia] [SQLServer JDBC Driver]不支持的数据转换。

代码:

<cfscript>
    order = entityLoadByPK('orders',session.orderid);
</cfscript>

session.orderid = 1001的值 我试过修剪它以防万一它上面有一些额外的空间。没有骰子。

这是我的表:

enter image description here

这是我的CFC:

component  output="false" persistent="true" table="orders" accessors="true"
{ 
    property name="o_id"        column="o_id"       getter="true"   setter="false"  fieldtype="id"  generator="identity"; 
    property name="o_cust_id"       column="o_cust_id"      getter="true"   setter="true" type="numeric"    sqltype="cf_sql_integer"; 
    property name="o_cart_id"       column="o_cart_id"      getter="true"   setter="true" type="numeric"    sqltype="cf_sql_integer"; 
    property name="o_item_count"        column="o_item_count"       getter="true"   setter="true" type="numeric"    sqltype="cf_sql_integer"; 
    property name="o_timestamp"     column="o_timestamp"        getter="true"   setter="true" ORMtype="date"    sqltype="cf_sql_timestamp"; 
    property name="o_subtotal"      column="o_subtotal"     getter="true"   setter="true" ORMtype="date"    sqltype=""; 
    property name="o_status"        column="o_status"       getter="true"   setter="true" type="string" sqltype="cf_sql_varchar"; 
    property name="o_tax_rate"      column="o_tax_rate"     getter="true"   setter="true" type="string" sqltype=""; 
    property name="o_tax_cost"      column="o_tax_cost"     getter="true"   setter="true" type="string" sqltype=""; 
    property name="o_promo_code"        column="o_promo_code"       getter="true"   setter="true" type="string" sqltype="cf_sql_varchar"; 
    property name="o_promo_value"       column="o_promo_value"      getter="true"   setter="true" type="string" sqltype=""; 
    property name="o_total"     column="o_total"        getter="true"   setter="true" type="string" sqltype=""; 
    property name="o_completed"     column="o_completed"        getter="true"   setter="true" type="char"   sqltype="cf_sql_bit"; 
    property name="o_completed_date"        column="o_completed_date"       getter="true"   setter="true" type="char"   sqltype="";

    public function init(){
        return this;
    }
}

这个令我感到困惑。

1 个答案:

答案 0 :(得分:1)

我想出来了。显然,SQL Server JDBC驱动程序(Microsoft HotFix)中存在一个错误。当null值在datetime字段中时,在尝试检索数据时会发生错误。

我认为问题字段是我的id字段,但它确实是日期时间字段。由于我只使用此字段作为时间戳,因此我只是将数据类型更改为varchar字段,并且错误消失。