CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  数据库

_bstr_t问题

楼主srgttg(白飘)2006-12-01 13:23:45 在 VC/MFC / 数据库 提问

 
  while(!pRs->EndOfFile)  
  {  
  _bstr_t   btdong   =   pRs->Fields->Item["栋号"]->Value;  
  _bstr_t   btfang   =   pRs->Fields->Item["房号"]->Value;  
  _bstr_t   btname   =   pRs->Fields->Item["姓名"]->Value;  
  _bstr_t   btsex     =   pRs->Fields->Item["性别"]->Value;  
  _bstr_t   btjob     =   pRs->Fields->Item["职业"]->Value;  
             
  _bstr_t   btnative   =   pRs->Fields->Item["籍贯"]->Value;  
  _bstr_t   btphone     =   pRs->Fields->Item["住宅电话"]->Value;  
  _bstr_t   btidcard   =   pRs->Fields->Item["身份证号"]->Value;  
   
   
   
  i++;  
  pRs->MoveNext();  
  }  
  pRs->Close();  
   
  当字段值为空时,执行语句出错,为何呢  
  问题点数:20、回复次数:5Top

1 楼srgttg(白飘)回复于 2006-12-01 16:30:26 得分 0

错误提示:Unhandled   exception   in   autoreadmeter.exe(KERNEL32.DLL):0XE06D7363:Microsoft   C++   ExceptionTop

2 楼zcp126()回复于 2006-12-01 16:35:48 得分 20

老天,会崩溃的。还是判断一下吧.  
  variant   vtest;  
  _bstr_t   bstest;  
  vtest   =   pRs->GetCollect("房号");  
  if   (   vtest.vt   !=   VT_NULL)  
  {  
  bstest   =   (_bstr_t)vtest;  
        do   something  
  }Top

3 楼xiao_guai(风之谷^小乖)回复于 2006-12-01 20:23:30 得分 0

对每一个都要判断吧,空字符的时候vtest.vt应该为   VT_NULL,认为已经结束了Top

4 楼Stefine(CSDN最菜滴猩猩)回复于 2006-12-01 21:02:49 得分 0

这种简单的错误机制处理都不写啊  
   
  建议看下编码风格方面的书先...Top

5 楼jxufeng(玉龙猪)回复于 2006-12-01 23:07:54 得分 0

如果你不想写,设计数据库的时候不允许该字段NULL,比如默认值为"",这个空哦。Top

相关问题

关键词

得分解答快速导航

  • 帖主:srgttg
  • zcp126

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo