读SQL数据读不完整问题

梁小莎 2008-06-18 08:12:01
Code:

bt=(_bstr_t)"select * from CRM..Customer_Information";
hr=rs->Open (bt,cn.GetInterfacePtr (),adOpenDynamic,adLockOptimistic,adCmdText);
...
while(!rs->EndOfFile)
{
pcustinfo->m_infolist.InsertItem(0, "");
str=(char*)(_bstr_t)rs->Fields->GetItem("Customer_ID")->Value;
pcustinfo->m_infolist.SetItemText(0,1,str);
str=(char*)(_bstr_t)rs->Fields->GetItem("Customer_Name")->Value;
pcustinfo->m_infolist.SetItemText(0,0,str);
rs->MoveNext();
str.Empty();
}

模拟数据: Customer_Information
Customer_ID Customer_Name
001 Lily
002 Lucy
003 (NULL)
004 Jim
005 Ken

如果按照逻辑的话,
五条记录将被读取出来,
但当有记录的其中一个字段为NULL时,
就不再继续读数据.
也就是只是两条记录被读取.
这是什么原因呢?
请大家帮下忙.

环境:
VC++ 6.0, SQL server Personal Edition.
...全文
113 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
梁小莎 2008-06-20
  • 打赏
  • 举报
回复
thank you ,
problem resolved.
zaodt 2008-06-18
  • 打赏
  • 举报
回复

_variant_t var;

///////

var = rs->Fields->GetItem("Customer_Name")->Value;

if(var.vt != VT_NULL)
str = (LPCSTR)_bstr_t(var);
else
str = "NULL";


///////

读取数据后,先判断一下是否为 NULL,然后再做转换。

4,012

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧