数据库连接没有问题。这个数据库有多张表,我查其中两张表,添加两个派生于CRecordset的类分别与两张表关联,其中一个查询没有问题,但是另外一个就查不到数据,用GetRecordCount得到记录数是1,但是字段是空值,但在数据库里是有数据的
数据库连接没有问题。这个数据库有多张表,我查其中两张表,添加两个派生于CRecordset的类分别与两张表关联,其中一个查询没有问题,但是另外一个就查不到数据,用GetRecordCount得到记录数是1,但是字段是空值,但在数据库里是有数据的
调试欢乐多
应该用 while(! set.IsEOF() ) { xxxxx, set.MoveNext(); } 查找
把你的SQL语句打印出来看下,跟SQL分析器对比下是不是一样
我用VB+ADO查询没有问题,可以查到记录。
CString strSQL;
CString fibertype;CtbTestSpec *m_ptbTestSpec= new CtbTestSpec(&((CMomexQAreportApp*)AfxGetApp())->m_DB); //CtbTestSpec从CRecordset派生,与tbTestSpec表关联,m_DB是CDatabase对象,已经用open链接上了数据源的。strSQL.Format(_T("Select sFiberType From tbTestSpec Where sPartNo='%s' AND (sFiberType='ONEBYONE' or sFiberType='ONEBYTWO' or sFiberType='TWOBYTWO')"),strPN);m_ptbTestSpec->Open(CRecordset::dynaset,strSQL);
fibertype=m_ptbTestSpec->m_sFiberType ; //取sFiberType字段值
AfxMessageBox(fibertype); //fibertype显示为空,实际数据表里有是记录的。
m_ptbTestSpec->Close();
delete m_ptbTestSpec;
请帮忙指导下吧,我的发帖如下:http://bbs.csdn.net/topics/390745140
m_ptbTestSpec->Open(CRecordset::dynaset,_T("Select sFiberType From tbTestSpec Where sPartNo='112233445566' AND (sFiberType='ONEBYONE' or sFiberType='ONEBYTWO' or sFiberType='TWOBYTWO'"));
这样试下