部分代码如下:
CString sql;
sql = "select * from dialinfo ";
OpenRecordSet(m_pRecordset,sql);//打开数据库
m_pRecordset->PageSize = 10;
m_iPageCount = m_pRecordset->PageCount;//m_iPageCount得到的值为-1,这是为什么啊?
CString sql;
sql = "select * from dialinfo ";
OpenRecordSet(m_pRecordset,sql);//打开数据库
m_pRecordset->PageSize = 10;
m_iPageCount = m_pRecordset->PageCount;//m_iPageCount得到的值为-1,这是为什么啊?
不行啊,"m_pRecordset->PageSize = 10; 放到open之前"运行会出错的OpenRecordSet(m_pRecordset,sql函数的实现:BOOL OpenRecordSet(_RecordsetPtr &recPtr, CString &strSQL)
{
CTestAutoDialApp* pApp=(CTestAutoDialApp*)AfxGetApp();
m_pRecordset.CreateInstance(__uuidof(Recordset));
try
{
recPtr->Open(strSQL.AllocSysString(), _variant_t((IDispatch*)pApp->m_pConnection,true),
adOpenDynamic,adLockOptimistic,adCmdText);
}
catch (_com_error e)
{
CString strError;
strError.Format("警告:打开数据表时发生异常。 错误信息: %s",\
e.ErrorMessage());
AfxMessageBox(strError);
return FALSE;
}
return TRUE;
}
{
// TODO: Add your control notification handler code here
if(m_iCurrentPage == m_iPageCount)
{
MessageBox("已经是最后一页");
return;
}
else
{
CString sql;
sql = "select * from dialinfo ";
OpenRecordSet(m_pRecordset,sql);
PositionEnum page;
++m_iCurrentPage;
page=(PositionEnum)m_iCurrentPage;
m_pRecordset->AbsolutePage=page; [b]//这句话运行出错,为什么啊?[/b] ShowData();
}
}
应该是之后
打开方式好像没什么问题啊
什么数据库?
adOpenForwardOnly,adLockReadOnly
这是手册上用的属性
打开数据库没有问题的
现在就是m_pRecordset->AbsolutePage=page; 这一句运行时候就出错了.