ADO Idispatch #3105 error 的原因和解决
(2014-06-23 15:34:49)今天调试爬虫程序,遇到了Idispatch #3105 error 错误,折腾半天找不到原因,最后才发现原来高老师给我的数据库的字段类型是错误的,晕死。。。
字段类型应该是ntext,不知道怎么给我的变成了nvarchar 类型长度为(1) ,我提交了个很大的摘要字符串
调试过程中查看到如下帮助,比较有用,原贴如下:
[http://hezhenwei.spaces.live.com/blog/cns!C5E95043D17A1B62!750.entry]
ADO Idispatch #3105 error 的原因和解决 这两天在玩ado的时候,使用RecordSet对于特定的字段更新总是出现 idispatch #3105 error. 在网上搜索资料也搜索不到。于是自己尝试,发现原因是这样的:在数据库中有些字段是字符串类型,允许为NULL,但是长度不允许为空.如果当数据为NULL的时候读取了数据,但是未经处理又需要插入的时候,可能会变成长度为空的字符串,这时进行插入或者更新时就会报#3105错误.
解决办法:声明_variant_t 类型,将其类型值设为 VT_NULL,然后用PutCollect放到RecordSet 里面就好了:
_variant_t myValue;
myValue.vt = VT_NULL;
m_pRecordset->PutCollect("FieldName1&q
更多来源:http://www.jiejuchina.com
uot;,myValue);
m_pRecordset->Update();