通过ado的putcollect方法保存int数据无效

通过ado的putcollect方法保存int数据无效。

原因:int转_variant_t方法不对。


处理方法1:

将putcollect中的

return PutCollect2(strFieldName, _variant_t(value));

改成下面的方式:

_variant_t var;
var.vt=VT_I4;
var.intVal = value;
return PutCollect2(strFieldName, var);

32位系统有效,64位系统依然无效

var.vt=VT_I8;

32位系统无效,64位系统好像也不行


处理方法2:

将putcollect中的

return PutCollect2(strFieldName, _variant_t(value));

改成

long tmp=value;

return PutCollect2(strFieldName, _variant_t(tmp));

这种方法暂时没发现什么别的问题


你可能感兴趣的:(Ado)