?? rscgdlg.cpp
字號:
// RsCgDlg.cpp : implementation file
//
#include "stdafx.h"
#include "RsCgDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CRsCgDlg dialog
CRsCgDlg::CRsCgDlg(CWnd* pParent /*=NULL*/)
: CDialog(CRsCgDlg::IDD, pParent)
{
m_strConnection = _T("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=L:\\精彩范例vc\\舉一反三\\實例6\\3\\數據庫\\studentreg.mdb;Mode=ReadWrite;Persist Security Info=False");
m_strCmdText = _T("StudentInfo");
m_pRs = NULL;
//{{AFX_DATA_INIT(CRsCgDlg)
m_strDlgid = _T("");
m_strDlgname = _T("");
m_sDlgage = 0;
m_strDlgsex = _T("");
m_strDlgemail = _T("");
m_lDlgclassid = 0;
m_strDlgmemo = _T("");
//}}AFX_DATA_INIT
}
CRsCgDlg::~CRsCgDlg()
{
m_pRs = NULL;
}
BOOL CRsCgDlg::OnInitDialog()
{
HRESULT hr = NOERROR;
IADORecordBinding *piAdoRecordBinding = NULL;
CDialog::OnInitDialog();
try
{
m_pRs.CreateInstance(__uuidof(Recordset));
m_pRs->CursorLocation = adUseClient;
m_pRs->Open((LPCTSTR)m_strCmdText, (LPCTSTR)m_strConnection, adOpenStatic,
adLockReadOnly, adCmdTableDirect);
if (FAILED(hr = m_pRs->QueryInterface(__uuidof(IADORecordBinding), (LPVOID *)&piAdoRecordBinding)))
_com_issue_error(hr);
if (FAILED(hr = piAdoRecordBinding->BindToRecordset(this)))
_com_issue_error(hr);
RefreshBoundData();
}
catch (_com_error &e)
{
GenerateError(e.Error(), e.Description());
}
if (piAdoRecordBinding)
piAdoRecordBinding->Release();
return TRUE;
}
void CRsCgDlg::RefreshBoundData()
{
if (adFldOK == lidStatus)
m_strDlgid = m_wszid;
else
m_strDlgid = _T("");
if (adFldOK == lnameStatus)
m_strDlgname = m_wszname;
else
m_strDlgname = _T("");
if (adFldOK == lageStatus)
m_sDlgage = m_sage;
else
m_sDlgage = 0;
if (adFldOK == lsexStatus)
m_strDlgsex = m_wszsex;
else
m_strDlgsex = _T("");
if (adFldOK == lemailStatus)
m_strDlgemail = m_wszemail;
else
m_strDlgemail = _T("");
if (adFldOK == lclassidStatus)
m_lDlgclassid = m_lclassid;
else
m_lDlgclassid = 0;
if (adFldOK == lmemoStatus)
m_strDlgmemo = m_wszmemo;
else
m_strDlgmemo = _T("");
UpdateData(FALSE);
}
void CRsCgDlg::GenerateError(HRESULT hr, PWSTR pwszDescription)
{
CString strError;
strError.Format("Run-time error '%d (%x)'", hr, hr);
strError += "\n\n";
strError += pwszDescription;
AfxMessageBox(strError);
}
void CRsCgDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CRsCgDlg)
DDX_Text(pDX, IDC_EDIT_ID, m_strDlgid);
DDX_Text(pDX, IDC_EDIT_NAME, m_strDlgname);
DDX_Text(pDX, IDC_EDIT_AGE, m_sDlgage);
DDX_Text(pDX, IDC_EDIT_SEX, m_strDlgsex);
DDX_Text(pDX, IDC_EDIT_EMAIL, m_strDlgemail);
DDX_Text(pDX, IDC_EDIT_CLASSID, m_lDlgclassid);
DDX_Text(pDX, IDC_EDIT_MEMO, m_strDlgmemo);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CRsCgDlg, CDialog)
//{{AFX_MSG_MAP(CRsCgDlg)
ON_BN_CLICKED(ID_BTN_MOVEFIRST, OnBtnMoveFirst)
ON_BN_CLICKED(ID_BTN_MOVELAST, OnBtnMoveLast)
ON_BN_CLICKED(ID_BTN_MOVENEXT, OnBtnMoveNext)
ON_BN_CLICKED(ID_BTN_MOVEPREVIOUS, OnBtnMovePrevious)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CRsCgDlg message handlers
void CRsCgDlg::OnBtnMoveFirst()
{
try
{
m_pRs->MoveFirst();
RefreshBoundData();
}
catch (_com_error &e)
{
GenerateError(e.Error(), e.Description());
}
}
void CRsCgDlg::OnBtnMoveLast()
{
try
{
m_pRs->MoveLast();
RefreshBoundData();
}
catch (_com_error &e)
{
GenerateError(e.Error(), e.Description());
}
}
void CRsCgDlg::OnBtnMoveNext()
{
try
{
m_pRs->MoveNext();
RefreshBoundData();
}
catch (_com_error &e)
{
GenerateError(e.Error(), e.Description());
}
}
void CRsCgDlg::OnBtnMovePrevious()
{
try
{
m_pRs->MovePrevious();
RefreshBoundData();
}
catch (_com_error &e)
{
GenerateError(e.Error(), e.Description());
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -