📄 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=MSDASQL.1;Persist Security Info=False;Extended Properties="DSN=wrb;Description=wrb;APP=Microsoft (R) Visual Studio;WSID=WRB;Trusted_Connection=Yes"");
m_strCmdText = _T("VIEW_COLUMN_USAGE");
m_pRs = NULL;
//{{AFX_DATA_INIT(CRsCgDlg)
m_strDlgVIEW_CATALOG = _T("");
m_strDlgVIEW_SCHEMA = _T("");
m_strDlgVIEW_NAME = _T("");
m_strDlgTABLE_CATALOG = _T("");
m_strDlgTABLE_SCHEMA = _T("");
m_strDlgTABLE_NAME = _T("");
m_strDlgCOLUMN_NAME = _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 == lVIEW_CATALOGStatus)
m_strDlgVIEW_CATALOG = m_wszVIEW_CATALOG;
else
m_strDlgVIEW_CATALOG = _T("");
if (adFldOK == lVIEW_SCHEMAStatus)
m_strDlgVIEW_SCHEMA = m_wszVIEW_SCHEMA;
else
m_strDlgVIEW_SCHEMA = _T("");
if (adFldOK == lVIEW_NAMEStatus)
m_strDlgVIEW_NAME = m_wszVIEW_NAME;
else
m_strDlgVIEW_NAME = _T("");
if (adFldOK == lTABLE_CATALOGStatus)
m_strDlgTABLE_CATALOG = m_wszTABLE_CATALOG;
else
m_strDlgTABLE_CATALOG = _T("");
if (adFldOK == lTABLE_SCHEMAStatus)
m_strDlgTABLE_SCHEMA = m_wszTABLE_SCHEMA;
else
m_strDlgTABLE_SCHEMA = _T("");
if (adFldOK == lTABLE_NAMEStatus)
m_strDlgTABLE_NAME = m_wszTABLE_NAME;
else
m_strDlgTABLE_NAME = _T("");
if (adFldOK == lCOLUMN_NAMEStatus)
m_strDlgCOLUMN_NAME = m_wszCOLUMN_NAME;
else
m_strDlgCOLUMN_NAME = _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_VIEW_CATALOG, m_strDlgVIEW_CATALOG);
DDX_Text(pDX, IDC_EDIT_VIEW_SCHEMA, m_strDlgVIEW_SCHEMA);
DDX_Text(pDX, IDC_EDIT_VIEW_NAME, m_strDlgVIEW_NAME);
DDX_Text(pDX, IDC_EDIT_TABLE_CATALOG, m_strDlgTABLE_CATALOG);
DDX_Text(pDX, IDC_EDIT_TABLE_SCHEMA, m_strDlgTABLE_SCHEMA);
DDX_Text(pDX, IDC_EDIT_TABLE_NAME, m_strDlgTABLE_NAME);
DDX_Text(pDX, IDC_EDIT_COLUMN_NAME, m_strDlgCOLUMN_NAME);
//}}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 + -