EOF和BOF有一个为真的老问题了!

Zhentiwei 2007-10-17 11:53:45
我在VC++6.0写了个数据库程序。我在网上搜了,都不行。
sql = "Select * from Mytable";
Mytable里有许多的数据,(不过有些字段没有写数据).
bool ADOConn::MoveFirst ()
{
int ncount = this->m_pRecordset->GetRecordCount();
try
{
// 这个if怎么写都不行啊
if(!this->m_pRecordset->adoEOF||!this->m_pRecordset->adoBOF)
this->m_pRecordset->MoveFirst ();
}
catch (_com_error e)
{
AfxMessageBox (e.Description () );

return false;
}

return true;
}
为什么总是说“OF和BOF有一个为真“的错误啊?我怎么处理数据库里面的空数据呢?因为我要把数据写到ListControl里面。
我找一个上午了,谢谢了各位,我一定给分。(就是数据库里为空,怎么处理啊)
...全文
215 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
凤矶 2007-10-17
  • 打赏
  • 举报
回复
如果 ADO 无法确定记录数目或者提供者或游标类型不支持 RecordCount,该属性将返回 -1
Zhentiwei 2007-10-17
  • 打赏
  • 举报
回复
int ncount = this- >m_pRecordset- >GetRecordCount();
那 ncount 怎么老是返回为-1啊?

明明是有许多的数据的啊。
凤矶 2007-10-17
  • 打赏
  • 举报
回复
在你的MoveFirst()里不要判断adoEOF
Zhentiwei 2007-10-17
  • 打赏
  • 举报
回复

各位,是我错了。
对不起了。

我用的是EXCEL文件,我没有选择所有的数据,所以有不存在的数据。
我每个人都给分,除我自己外。

谢谢各位了。
Zhentiwei 2007-10-17
  • 打赏
  • 举报
回复

自己帮忙顶一下。
Zhentiwei 2007-10-17
  • 打赏
  • 举报
回复
_RecordsetPtr &ADOConn::GetRecordSet (_bstr_t bstrSQL)
{
try
{
// connect database, IF Connection is NULL, THEN Resume
if( m_pConnection == NULL)
this->OnInitDBConnect();

// Create Recordset Object
m_pRecordset.CreateInstance (__uuidof(Recordset));

m_pRecordset->CursorLocation = adUseClient;
// Get Record in TABLE
m_pRecordset->Open (bstrSQL, m_pConnection.GetInterfacePtr(),adOpenDynamic,
adLockOptimistic, adCmdText);

}
// catch UNNormal
catch( _com_error e)
{
// Display error INFORMATION
AfxMessageBox (e.Description());
}
int count = this->m_pRecordset->GetRecordCount();//在这个地方,得到0值啊。
// Return Recordset
return this->m_pRecordset;

}
凤矶 2007-10-17
  • 打赏
  • 举报
回复
m_pRecordset->CursorLocation = adUseClient;
Zhentiwei 2007-10-17
  • 打赏
  • 举报
回复
to 大毛
我试了也不行,
to 我是菜鸟
我的 m_pRecordset- >GetRecordCount(),就为-1啊。没有用GetCollect()。
shakaqrj 2007-10-17
  • 打赏
  • 举报
回复
某些字段没有数据用eof和bof判断不出来吧
在where里面过滤呢?
或者取出来判断GetCollect("字段名").vt==VT_NULL
凤矶 2007-10-17
  • 打赏
  • 举报
回复
adOpenStatic
Zhentiwei 2007-10-17
  • 打赏
  • 举报
回复
to 亲爱的 我是菜鸟:
“去掉一半呢
只留下eof或者bof”
这个我也试过了,只是我的数据里有些脏数据(就是在某些字段里,没有数据)。我该怎么办?
shakaqrj 2007-10-17
  • 打赏
  • 举报
回复
去掉一半呢
只留下eof或者bof
Zhentiwei 2007-10-17
  • 打赏
  • 举报
回复
我的open是这样写的:
m_pRecordset->Open (bstrSQL, this->m_pConnection.GetInterfacePtr(), adOpenDynamic,
adLockOptimistic, adCmdText);
shakaqrj 2007-10-17
  • 打赏
  • 举报
回复
看看你的open是怎么写的

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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