RecordSet->MoveFirst();
while (!RecordSet->adoEOF)
{
RecordSet->PutCollect("Value", _variant_t(10.2f));
RecordSet->Update();
RecordSet->MoveNext();
}注:当表中的记录小于9000多条时可以修改成功,当表中的记录大于9000多条时则修改失败。
不知道如何解决?
while (!RecordSet->adoEOF)
{
RecordSet->PutCollect("Value", _variant_t(10.2f));
RecordSet->Update();
RecordSet->MoveNext();
}注:当表中的记录小于9000多条时可以修改成功,当表中的记录大于9000多条时则修改失败。
不知道如何解决?
解决方案 »
- 有个关于网络编程的错误,麻烦帮小弟看看!
- adodc+datagrid如何查询
- 求助,怎么将tcp传输通信改成udp通信!!!!
- 科学计算机
- 求教~~~~在VC++中的菜单是在一个工具栏上可以拖动,怎样用代码实现,thank!!
- 在执行CoUninitialize()时出错,该怎样解决?
- 当我用WinSock接受来自服务器的HTML并且保存,用IE打开为什么图片没有传,
- 高手给我一点指点
- 在线!今晚结贴!请高手给我讲解一下:在基于对话框的程序中,如何使主对话框变成不规则的?如何将其分割为几个不同的区域,以处理鼠标响
- OpenGL的二维绘图
- 通过进程获取
- x86的内存映射机制中,页表能不能被换出去?
在数据库中有些字段是字符串类型,允许为NULL,但是长度不允许为空.如果当数据为NULL的时候读取了数据,但是未经处理又需要插入的时候,可能会变成长度为空的字符串,这时进行插入或者更新时就会报#3105错误.
解决办法:声明_variant_t 类型,将其类型值设为 VT_NULL,然后用PutCollect放到RecordSet 里面就好了:
_variant_t myValue;
myValue.vt = VT_NULL;
m_pRecordset->PutCollect("FieldName1",myValue);
m_pRecordset->Update(); 所以这类问题一般都是类型不符或者格式匹配。
try
{
//你的ADO代码
}
catch (_com_error& e)
{
AfxMessageBox(e.Description());
}
try
{
//你的ADO代码
}
catch (_com_error& e)
{
AfxMessageBox(e.Description());
}
捕获错误就是IDispatch error #3105但不知道为什么记录较少时能操作成功,记录较多时就会失败。