// DialogDbInit.cpp : 实现文件 // #include "stdafx.h" #include "FirstStep.h" #include "DialogDbInit.h" #include "afxdialogex.h" #include "ConfigLoader.h" // CDialogDbInit 对话框 IMPLEMENT_DYNAMIC(CDialogDbInit, CDialogEx) CDialogDbInit::CDialogDbInit(CWnd* pParent /*=NULL*/) : CDialogEx(CDialogDbInit::IDD, pParent) { } CDialogDbInit::~CDialogDbInit() { } void CDialogDbInit::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_Control(pDX, IDC_CMB_DB_TYPE, m_CmbDbType); DDX_Check(pDX, IDC_CHK_CFG_TABLE, m_InitCfgTable); DDX_Check(pDX, IDC_CHECK_S_TABLE, m_InitSTable); } BEGIN_MESSAGE_MAP(CDialogDbInit, CDialogEx) ON_BN_CLICKED(IDOK, &CDialogDbInit::OnBnClickedOk) ON_BN_CLICKED(IDCANCEL, &CDialogDbInit::OnBnClickedCancel) END_MESSAGE_MAP() // CDialogDbInit 消息处理程序 void CDialogDbInit::OnBnClickedOk() { // TODO: 在此添加控件通知处理程序代码 UpdateData(); if(!m_InitCfgTable && !m_InitSTable) { MessageBox(_T("请选择需要创建的数据库表!"), MSGBOX_TIP_CAPTION); return; } DB_TYPE DbTp = (DB_TYPE)m_CmbDbType.GetCurSel(); if(DbTp != DB_SQLServer && DbTp != DB_MySQL) { MessageBox(_T("目前仅支持SqlServer和MySQL数据库!"), MSGBOX_TIP_CAPTION); return; } CString Result; if(MessageBox(_T("您确定要创建相关数据库表吗?此操作将清空原有的同名数据库表的所有数据!"), _T("数据库初始化"), MB_ICONQUESTION|MB_YESNO) == IDYES) { if(m_InitCfgTable) if(!CConfigLoader::GetInstance().createTableConfig(DbTp)) Result = _T("配置表创建失败!\r\n"); if(m_InitSTable) if(!CConfigLoader::GetInstance().createTableStatistics(DbTp)) Result += _T("统计表创建失败!\r\n"); } Result += _T("数据库表创建完成"); MessageBox(Result, MSGBOX_TIP_CAPTION); CDialogEx::OnOK(); } void CDialogDbInit::OnBnClickedCancel() { // TODO: 在此添加控件通知处理程序代码 CDialogEx::OnCancel(); } BOOL CDialogDbInit::PreTranslateMessage(MSG* pMsg) { // TODO: 在此添加专用代码和/或调用基类 if((pMsg->message == WM_KEYDOWN) && (pMsg->wParam == VK_ESCAPE)) return TRUE; return CDialogEx::PreTranslateMessage(pMsg); } BOOL CDialogDbInit::OnInitDialog() { CDialogEx::OnInitDialog(); // TODO: 在此添加额外的初始化 m_CmbDbType.AddString(DB_TYPE_SQL_SERVER); m_CmbDbType.AddString(DB_TYPE_MYSQL); m_CmbDbType.AddString(DB_TYPE_ORACLE); DB_TYPE tp = IOtlConnection::getInstance()->GetDatabaseType(); if(DB_SQLServer == tp) m_CmbDbType.SetCurSel(0); else if(DB_MySQL == tp) m_CmbDbType.SetCurSel(1); else m_CmbDbType.SetCurSel(2); return TRUE; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE }