我要搜索的记录明明在库中没有,但ADO的_RecordsetPtr m_pRecordset却告诉我"已经找到!"
//根据员工编号读取所有字段值
void Cinfo_base::GetData(CString cKSH)
{
//连接数据库
ADOConn m_AdoConn;
m_AdoConn.OnInitADOConn();
//设置SELECT语句
_bstr_t vSQL;
vSQL = "SELECT * FROM info_base WHERE KSH=" + cKSH;
//执行SELETE语句
_RecordsetPtr m_pRecordset;
m_pRecordset = m_AdoConn.GetRecordSet(vSQL);
//就是这里!!!!!!!!!!!!!!!!!!
if (m_pRecordset->adoEOF == 1)
AfxMessageBox("no Found!");
else
AfxMessageBox("Found!");
////////////////////////////////////////////////////////
//返回各列的值
if (m_pRecordset->adoEOF == 1)
{
Cinfo_base();
}
else
{
KSH = cKSH;
XM = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("XM");
XBDM = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("XBDM");
CSRQ = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("CSRQ");
BYXXDM = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("BYXXDM");
BJH = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("BJH");
MZDM = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("MZDM");
ZZMMDM = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("ZZMMDM");
YZBM = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("YZBM");
KSLBDM = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("KSLBDM");
XJH = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("XJH");
HKSZD = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("HKSZD");
LXDH = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("LXDH");
SFZH = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("SFZH");
BZ = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("BZ");
}
//断开与数据库的连接
m_AdoConn.ExitConnect();
}
我输了一个不存在的员工编号,程序报告"Found!",执行赋值语句时出错!这是怎么回事?
问题点数:20、回复次数:10Top
1 楼handsomerun(毛毛)回复于 2006-03-20 16:09:18 得分 0
如果你的sql没有写错的话
那么估计是
if (m_pRecordset->adoEOF == 1)这个判断做的不对~~Top
2 楼handsomerun(毛毛)回复于 2006-03-20 16:13:09 得分 20
if(!(m_pRecordset->adoEOF && m_pRecordset->adoBOF))
记录集非空~~
Top
3 楼gxning(gxning)回复于 2006-03-20 16:15:03 得分 0
如果有记录,可以正常显示!
现在问题是:不管有没有记录, (m_pRecordset->adoEOF == 1)永远不会被执行!Top
4 楼gxning(gxning)回复于 2006-03-20 16:18:54 得分 0
handsomerun(毛毛) :
if(!(m_pRecordset->adoEOF && m_pRecordset->adoBOF))
记录集非空~~
试了,不成功!Top
5 楼handsomerun(毛毛)回复于 2006-03-20 16:22:15 得分 0
不知道是不是sql语句有问题啊
KSH是个什么类型的字段??
Top
6 楼gxning(gxning)回复于 2006-03-20 16:35:43 得分 0
亲爱的毛毛:
你好!我已成功了,你是一个高手,you are top!
if(!(m_pRecordset->adoEOF && m_pRecordset->adoBOF))如果为空,那得到一个假值
甘小宁
Top
7 楼gxning(gxning)回复于 2006-03-20 16:38:33 得分 0
还有一个问题我家是ADSL上网,没有固定IP,如何远程访问里面的数据库?Top
8 楼handsomerun(毛毛)回复于 2006-03-20 16:39:11 得分 0
我晕,你和甘宁什么关系 :)
还有,你不是说用这个不成功吗??Top
9 楼gxning(gxning)回复于 2006-03-20 16:41:28 得分 0
你是哪个?甘宁是很重要的一个人我刚才将T和搞反了!Top
10 楼gxning(gxning)回复于 2006-03-20 16:43:43 得分 0
甘宁这么有名!我刚才将True和False搞反了!
Top
相关问题
- 怎么样得到_RecordsetPtr m_pRecordset的记录个数?(ADO)
- _RecordsetPtr m_pRecordset;怎么老出错?
- ADO访问SQL Server时m_pRecordset->GetRecordCount();为什么返回-1 用access时正常
- 急问m_pRecordset->Open
- m_pRecordset->Open()出错
- ADO访问SQL Server,m_pRecordset->GetCollect()括号中的字段名能用变量表示吗?
- (LPCTSTR)(_bstr_t)m_pRecordSet->GetCollect("Content")
- ADO中_RecordsetPtr的AddNew()问题
- 请问如何使用_RecordsetPtr m_spRS,的m_spRS->EOF ?
- 通过 pRecordset(ADO) 枚举字段名?




