VC++ 通过ADO连接数据库查询时返回空值报错的解决方案
来源:互联网 发布:win10不能下载软件 编辑:程序博客网 时间:2024/06/08 15:23
当数据库的字段值允许为空时, 而且此时内容也为空时,则执行查询会出错,例如
CString str = pRecordset->GetFields()->GetItem((long)0)->GetValue();
或者
str=pRecordset->GetCollect(“posInfo”);
会弹出如下窗口提示出错!
更加奇怪的是 catch(…)也抓不到异常
今天碰着个问题算是头弄大了 最后终于弄好了
报错的原因: 在GetCollct返回了NULL之后 由于str是一个CString对象 编译器自动将_varint_t转换成CString 而此时_varint_t为空 因此转换失败 不是数据库的异常 而且根本就不是异常 所以 catch(…)无法抓住。
解决方案
在可能为空的地方,加入如下代码
- _variant_t var;
- var= m_pRecordset->GetCollect(”posInfo”); //可能为空
- if(var.vt != VT_NULL) //为NULL
- {
- strPosInfo = var;
- }
- else
- {
- strPosInfo = “”;
_variant_t var; var= m_pRecordset->GetCollect("posInfo"); //可能为空 if(var.vt != VT_NULL) //为NULL { strPosInfo = var; } else { strPosInfo = “”;}
就可以检测NULL值了
0 0
- VC++ 通过ADO连接数据库查询时返回空值报错的解决方案
- VC++ 通过ADO连接数据库查询时返回空值报错的解决方案
- ADO的一次开发实践(vc通过ADO连接access数据库做的一个多功能查询系统)
- VC++6.0 通过ADO连接Oracle数据库
- VC++通过ADO连接数据库(一)
- VC++ 通过ADO连接数据库(二)
- VC++ADO连接数据库
- VC++ADO连接数据库
- VC++ADO连接数据库
- VC连接ADO数据库
- vc连接ADO数据库
- VC ADO连接数据库
- VC ado连接数据库
- vc++连接ADO数据库
- VC++中使用MFC通过ADO连接数据库方法小结
- VC++中使用MFC通过ADO连接数据库方法小结
- VC++通过ADO连接数据库(三)_variant_t和_bstr_t
- VC++中使用MFC通过ADO连接数据库
- 常用工具
- 网格变形动画
- 数组的循环移动
- 使用DrawerLayout实现侧拉菜单
- 关于plsql的commit,事务回滚 rollback
- VC++ 通过ADO连接数据库查询时返回空值报错的解决方案
- 二叉树中和为某一值的路径
- Android自带的倒计时CountDownTimer
- HTML 提高页面加载速度的方法
- TP3.2的URL重写省略index.php问题
- 机器学习实战---读书笔记: 第3章 决策树
- [Weex-BBQ]Weex项目中引用css样式的三种姿势
- Oracle中查看所有表和字段以及表注释.字段注释
- s标签大全