📄 projectseldlg.cpp
字号:
// ProjectSelDlg.cpp : implementation file
//
#include "stdafx.h"
#include "KeyPath.h"
#include "ProjectSelDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern CKeyPathApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CProjectSelDlg dialog
CProjectSelDlg::CProjectSelDlg(CWnd* pParent /*=NULL*/)
: CDialog(CProjectSelDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CProjectSelDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CProjectSelDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CProjectSelDlg)
DDX_Control(pDX, IDC_PRJ_LIST, m_prjList);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CProjectSelDlg, CDialog)
//{{AFX_MSG_MAP(CProjectSelDlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CProjectSelDlg message handlers
void CProjectSelDlg::OnOK()
{
// TODO: Add extra validation here
UpdateData(TRUE);
int nSelected = m_prjList.GetSelectionMark();
if (nSelected < 0) {
return;
}
theApp.m_PathTitleID = m_prjList.GetItemText(nSelected, 0);
theApp.m_PathTitle = m_prjList.GetItemText(nSelected, 1);
CDialog::OnOK();
}
void CProjectSelDlg::OnCancel()
{
// TODO: Add extra cleanup here
CDialog::OnCancel();
}
BOOL CProjectSelDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_prjList.InsertColumn(0, "编号", LVCFMT_LEFT, 40);
m_prjList.InsertColumn(1, "工程名称", LVCFMT_LEFT, 60);
//获取当前程序所在物理路径
//程序所在目录全路径。
TCHAR exeFullPath[MAX_PATH];
CString theConnUdl;
GetCurrentDirectory(MAX_PATH, exeFullPath);
//数据库连接指针
_ConnectionPtr m_accessConn;
//数据库结果集指针
_RecordsetPtr m_accessRS;
if (m_accessConn != NULL)
{
if (m_accessConn->State)
{
m_accessConn->Close();
}
m_accessConn = NULL;
}
//初始化数据库连接
theConnUdl.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s\\key_path.mdb;Jet OLEDB:Database Password=;", exeFullPath);
HRESULT hr;
try
{
hr = m_accessConn.CreateInstance("ADODB.Connection"); // 创建Connection对象
if(SUCCEEDED(hr))
{
hr = m_accessConn->Open((_bstr_t) theConnUdl, "", "", adModeUnknown);
}
}
catch(_com_error e)// 捕捉异常
{
MessageBox("连接数据库失败");
return false;
}
//初始化数据库
m_accessRS.CreateInstance(_uuidof(Recordset));
m_accessRS->CursorType = adOpenStatic;
m_accessRS->CursorLocation = adUseClient;
CString theSql;
int nItem = 0;
int m_num = 0;
//获取工程信息
theSql.Format("select id, project_name, memo from project order by project_name ASC");
m_accessRS = m_accessConn->Execute(_bstr_t(theSql), NULL, adCmdText);
while (!m_accessRS->adoEOF) {
nItem = m_prjList.InsertItem(m_num, _T((LPCTSTR)(_bstr_t) m_accessRS->GetCollect("id")));
m_prjList.SetItemText(nItem, 1, _T((LPCTSTR)(_bstr_t) m_accessRS->GetCollect("project_name")));
m_num++;
m_accessRS->MoveNext();
}
if (m_accessConn != NULL)
{
if (m_accessConn->State)
{
m_accessConn->Close();
}
m_accessConn = NULL;
}
if (m_accessRS != NULL)
{
if (m_accessRS->State)
{
m_accessRS->Close();
}
m_accessRS = NULL;
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -