尝试使用ORM加载对象时收到以下错误:
[Macromedia] [SQLServer JDBC Driver]不支持的数据转换。
代码:
<cfscript>
order = entityLoadByPK('orders',session.orderid);
</cfscript>
session.orderid = 1001的值 我试过修剪它以防万一它上面有一些额外的空间。没有骰子。
这是我的表:
这是我的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;
}
}
这个令我感到困惑。
答案 0 :(得分:1)
我想出来了。显然,SQL Server JDBC驱动程序(Microsoft HotFix)中存在一个错误。当null值在datetime字段中时,在尝试检索数据时会发生错误。
我认为问题字段是我的id字段,但它确实是日期时间字段。由于我只使用此字段作为时间戳,因此我只是将数据类型更改为varchar字段,并且错误消失。