VC下sql+ado数据库v_strTemp.vt == VT_NULL空值处理
2013-03-13 20:17
417 查看
VC下sql+ado数据库v_strTemp.vt == VT_NULL判断的问题
C/C++ code
我很不解,代码不加以上的空判部分,当由pRst->GetCollect((long)j)获取到的数据库中的某项为空值时,
竟然会直接退出里层的for循环!
比如假设fieldCnt=5
数据库表的内容为:
姓名 年龄 学校 兴趣 备注
aa bb null dd ee
如果不加空判断,当遍历到学校为null时,也就是当j=1时,就直接退出里层部分的for循环了,
导致我住列表控件里插入内容时,只能插入aa和bb,后面的dd和ee就没法插入了!
但是加上后就能正常遍历!这到底是为什么啊?这其中的原理是什么?
------解决方案--------------------------------------------------------
v_strTemp=pRst->GetCollect((long)j);//获取第j列内容
问题出在这里。GetCollect的参数是_bstr_r类型。
C/C++ code
for (int i=0;i<q;i++) { str.Format("%d",i+1); //行数从1开始 m_list.InsertItem(i, str);//插入行号 for(int j=0; j<fieldCnt; j++) //fieldCnt为字段个数 { v_strTemp=pRst->GetCollect((long)j);//获取第j列内容 ///////////////////////////////////////////////////////////////// //判断数据库中的NULL值 if (v_strTemp.vt == VT_NULL) //空判断很重要!!!否则遇以空时处理会出问题 { str ="NULL"; } else { str = (LPCSTR)(_bstr_t)v_strTemp; } /////////////////////////////////////////////////////////////////// m_list.SetItemText(i,j+1,str);//插入内容 } pRst->MoveNext(); }
我很不解,代码不加以上的空判部分,当由pRst->GetCollect((long)j)获取到的数据库中的某项为空值时,
竟然会直接退出里层的for循环!
比如假设fieldCnt=5
数据库表的内容为:
姓名 年龄 学校 兴趣 备注
aa bb null dd ee
如果不加空判断,当遍历到学校为null时,也就是当j=1时,就直接退出里层部分的for循环了,
导致我住列表控件里插入内容时,只能插入aa和bb,后面的dd和ee就没法插入了!
但是加上后就能正常遍历!这到底是为什么啊?这其中的原理是什么?
------解决方案--------------------------------------------------------
v_strTemp=pRst->GetCollect((long)j);//获取第j列内容
问题出在这里。GetCollect的参数是_bstr_r类型。
相关文章推荐
- VC下sql+ado数据库v_strTemp.vt == VT_NULL空值处理
- VC下sql+ado数据库v_strTemp.vt == VT_NULL判断的问题
- C#中往数据库插入/更新时候关于NUll空值的处理
- VC++ 通过ADO连接数据库查询时返回空值报错的解决方案
- 使用ado遇到数据库中的NULL时的处理方法。
- 利用VC和ADO接口编写一个dll模块实现对数据库数据的处理
- VC++ 通过ADO连接数据库查询时返回空值报错的解决方案
- 使用ado遇到数据库中的NULL时的处理方法。
- 数据库中的空值与null的处理!
- 利用VC和ADO接口编写一个dll模块实现对数据库数据的处理
- C#中往数据库插入/更新时候关于NUll空值的处理
- VC++中使用ADO连接数据库
- VC用ADO访问数据库全攻略
- VC中调用ADO对象访问数据库的范例
- String处理入门 - null或空值的判断处理
- vc++中ado连接数据库的方法及详细介绍
- vc使用ADO操作数据库总结 选择自 CDrea 的 Blog
- Java String处理入门 - null或空值的判断处理
- vc++------利用ADO连接数据库(学习所得)
- NPOI 操作数据库中数据的导入导出(Excel.xls文件) 和null数据的处理。