_bstr_t问题
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




