简单应用视频:c++ access操作_哔哩哔哩_bilibili
根据ado技术,采用封装的分页api,具体实现如下:
// CPageDlg 消息处理程序
BOOL CPageDlg::OnInitDialog()
{
CString strName = L"test.mdb";
CString strFullPath = _InitLocalPath(strName);
if (!_IsMDBConnection(strFullPath))
{
m_MDB.Close();
return FALSE;
}
CString strQuerySQL;
strQuerySQL.Format(_T("SELECT * FROM Res"));//查询语句
m_cRe.SetADODatabase(&m_MDB);
m_cRe.SetPageSize(20);
bool bRet = m_cRe.Open(strQuerySQL, m_cRe.openQuery);
if (!bRet)
{
}
return TRUE;
}
BOOL CPageDlg::_IsMDBConnection(CString& strFilePath)
{
m_MDB.SetConnectionString(strFilePath);
BOOL bRet = m_MDB.Open();
if (!bRet)
{
AfxMessageBox(_T("打开数据库失败"));
return FALSE;
}
return TRUE;
}
//获取Debug的目录中的数据库文件
CString CPageDlg::_InitLocalPath(CString& strTemplateFileName)
{
TCHAR modulePath[MAX_PATH];
GetModuleFileName(NULL, modulePath, MAX_PATH);
CString strModulePath(modulePath);
strModulePath = strModulePath.Left(strModulePath.ReverseFind(_T('\\')));
strModulePath = strModulePath + _T("\\") + strTemplateFileName;
return strModulePath;
}
//上一页
void CPageDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
m_nPage--;
OnReadAccess();
}
//下一页
void CPageDlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
m_nPage++;
OnReadAccess();
}
//首页
void CPageDlg::OnBnClickedButton3()
{
// TODO: 在此添加控件通知处理程序代码
m_nPage = 1;
OnReadAccess(); //自定义的函数,表示输出记录到控件
}
void CPageDlg::OnReadAccess()
{
m_cRe.SetAbsolutePage(m_nPage);
int nLastPosition = m_cRe.GetAbsolutePosition() + m_cRe.GetPageSize();
CString strGroupID;
while (!m_cRe.IsEof())
{
m_cRe.GetFieldValue(_T("id"), strGroupID);
int nPosition = m_cRe.GetAbsolutePosition();
if (nPosition >= nLastPosition - 1) break;
m_cRe.MoveNext();
}
}