MFC编程用ADO连接数据库,执行查询语句后,如果返回0条记录有什么标志吗?
我自己编程的代码如下:UpdateData(true);CStringstrSQL=_T("select*fromcustomerwhereCust_no='")+Key...
我自己编程的代码如下:
UpdateData(true);
CString strSQL=_T("select * from customer where Cust_no='")+KeyWord+_T("'");
try
{
theApp.m_pRecordset->Open(strSQL.GetBuffer(),theApp.m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
strSQL.ReleaseBuffer();
}
catch(_com_error e)
{
AfxMessageBox(e.ErrorMessage());
}
long it=theApp.m_pRecordset->RecordCount;
theApp.m_pRecordset->MoveFirst();
CString str=_T("");
_variant_t var;
while(!theApp.m_pRecordset->adoEOF)
{
var=theApp.m_pRecordset->GetCollect("Cust_name");
str=theApp.strVARIANT(var);
theApp.m_pRecordset->MoveNext();
}
UpdateData(false);
如果KeyWord在表里没有查找到,会跳出内存错误,程序被中止。
出错的语句是theApp.m_pRecordset->MoveFirst();这里。有什么方法判断返回记录为0,然后不执行这句? 展开
UpdateData(true);
CString strSQL=_T("select * from customer where Cust_no='")+KeyWord+_T("'");
try
{
theApp.m_pRecordset->Open(strSQL.GetBuffer(),theApp.m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
strSQL.ReleaseBuffer();
}
catch(_com_error e)
{
AfxMessageBox(e.ErrorMessage());
}
long it=theApp.m_pRecordset->RecordCount;
theApp.m_pRecordset->MoveFirst();
CString str=_T("");
_variant_t var;
while(!theApp.m_pRecordset->adoEOF)
{
var=theApp.m_pRecordset->GetCollect("Cust_name");
str=theApp.strVARIANT(var);
theApp.m_pRecordset->MoveNext();
}
UpdateData(false);
如果KeyWord在表里没有查找到,会跳出内存错误,程序被中止。
出错的语句是theApp.m_pRecordset->MoveFirst();这里。有什么方法判断返回记录为0,然后不执行这句? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询