// DBSetting.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù. // #include "stdafx.h" #include "SeverSetupDlg.h" #include "DBSetting.h" #include ".\dbsetting.h" // CDBSetting ´ëÈ­ »óÀÚÀÔ´Ï´Ù. IMPLEMENT_DYNAMIC(CDBSetting, CDialog) CDBSetting::CDBSetting(const TCHAR* szWindowTitle, const DBSetting& dbSetting, CWnd* pParent) : CDialog(CDBSetting::IDD, pParent) , m_szWindowTitle(szWindowTitle) , m_szDBAddrLabel(_T("")) , m_DBSetting(dbSetting) , m_szDBNameLabel(_T("")) { } CDBSetting::~CDBSetting() { } void CDBSetting::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_DB_TYPE, m_cbDBType); DDX_Control(pDX, IDC_DB_NONE, m_edDBInfo[DBSetting::DB_TYPE]); DDX_Control(pDX, IDC_DB_ADDR, m_edDBInfo[DBSetting::DB_ADDR]); DDX_Control(pDX, IDC_DB_NAME, m_edDBInfo[DBSetting::DB_NAME]); DDX_Control(pDX, IDC_DB_USER, m_edDBInfo[DBSetting::DB_USER]); DDX_Control(pDX, IDC_DB_PASS, m_edDBInfo[DBSetting::DB_PASS]); DDX_Text(pDX, IDC_DB_ADDR_LABEL, m_szDBAddrLabel); DDX_Text(pDX, IDC_DB_NAME_LABLE, m_szDBNameLabel); } BEGIN_MESSAGE_MAP(CDBSetting, CDialog) ON_CBN_SELCHANGE(IDC_DB_TYPE, OnCbnSelchangeDbType) END_MESSAGE_MAP() // CDBSetting ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. BOOL CDBSetting::OnInitDialog() { CDialog::OnInitDialog(); SetWindowText(m_szWindowTitle); for (int nIndex = 0; nIndex < DBSetting::MAX_DBDATA; ++nIndex) { // ´Ù¸¥ µ¥ÀÌÅ͵éÀ» ÀüºÎ ¼¼ÆÃÇÑ´Ù. m_edDBInfo[nIndex].SetWindowText(m_DBSetting.m_szDBData[nIndex]); } m_cbDBType.InsertString(0, _T("MSSQL")); m_cbDBType.InsertString(1, _T("ODBC")); m_cbDBType.InsertString(2, _T("ORACLE")); CString& szDBType = m_DBSetting.m_szDBData[DBSetting::DB_TYPE]; szDBType.MakeUpper(); int nDBTypeIndex = 0; if (0 == szDBType.Compare(_T("MSSQL"))) { nDBTypeIndex = 0; } else if (0 == szDBType.Compare(_T("ODBC"))) { nDBTypeIndex = 1; } else if (0 == szDBType.Compare(_T("ORACLE"))) { nDBTypeIndex = 2; } m_cbDBType.SetCurSel(nDBTypeIndex); OnCbnSelchangeDbType(); return TRUE; // return TRUE unless you set the focus to a control // ¿¹¿Ü: OCX ¼Ó¼º ÆäÀÌÁö´Â FALSE¸¦ ¹ÝÈ¯ÇØ¾ß ÇÕ´Ï´Ù. } void CDBSetting::OnOK() { // TODO: ¿©±â¿¡ Ư¼öÈ­µÈ Äڵ带 Ãß°¡ ¹×/¶Ç´Â ±âº» Ŭ·¡½º¸¦ È£ÃâÇÕ´Ï´Ù. UpdateData(FALSE); for (int nIndex = 0; nIndex < DBSetting::MAX_DBDATA; ++nIndex) { // ´Ù¸¥ µ¥ÀÌÅ͵éÀ» ÀüºÎ ¾ò¾î¿Â´Ù. m_edDBInfo[nIndex].GetWindowText(m_DBSetting.m_szDBData[nIndex]); } int nCurSel = m_cbDBType.GetCurSel(); if (nCurSel < 0) { nCurSel = 0; } m_cbDBType.GetLBText(nCurSel, m_DBSetting.m_szDBData[DBSetting::DB_TYPE]); const CString& DBType = m_DBSetting.m_szDBData[DBSetting::DB_TYPE]; if (0 != DBType.Compare(_T("MSSQL"))) { m_DBSetting.m_szDBData[DBSetting::DB_NAME] = _T("NULL"); } CDialog::OnOK(); } void CDBSetting::OnCbnSelchangeDbType() { // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. CString DBType; m_cbDBType.GetLBText(m_cbDBType.GetCurSel(), DBType); if (0 == DBType.Compare("MSSQL")) { m_edDBInfo[DBSetting::DB_NAME].EnableWindow(TRUE); m_szDBAddrLabel.SetString(_T("DB Address")); m_szDBNameLabel.SetString(_T("DB Name")); } else { m_edDBInfo[DBSetting::DB_NAME].EnableWindow(FALSE); m_szDBAddrLabel.SetString(_T("DB DataSourceName")); m_szDBNameLabel.SetString(_T("")); } UpdateData(FALSE); } void CDBSetting::CreateDBInfoString(const DBSetting& dbSetting, CString& szDBInfo) { const CString& DBType = dbSetting.m_szDBData[DBSetting::DB_TYPE]; if (0 == DBType.Compare(_T("MSSQL"))) { szDBInfo.AppendFormat( _T("- DB Type : %s\r\n") _T("- DB Addr : %s\r\n") _T("- DB Name : %s\r\n") _T("- DB User : %s\r\n") _T("- DB Pass : "), dbSetting.m_szDBData[DBSetting::DB_TYPE], dbSetting.m_szDBData[DBSetting::DB_ADDR], dbSetting.m_szDBData[DBSetting::DB_NAME], dbSetting.m_szDBData[DBSetting::DB_USER]); } else { szDBInfo.AppendFormat( _T("- DB Type : %s\r\n") _T("- DB DataSource : %s\r\n") _T("- DB User : %s\r\n") _T("- DB Pass : "), dbSetting.m_szDBData[DBSetting::DB_TYPE], dbSetting.m_szDBData[DBSetting::DB_ADDR], dbSetting.m_szDBData[DBSetting::DB_USER]); } int nLength = dbSetting.m_szDBData[DBSetting::DB_PASS].GetLength(); while (0 < --nLength) { szDBInfo.Append("*"); } } bool CDBSetting::CreateDBSettingDlg(const TCHAR* szWindowTitle, const TCHAR* szDBInfoFooter, DBSetting& dbSetting, CString& szDBInfo) { // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. CDBSetting DBSettingDlg(szWindowTitle, dbSetting); if (IDOK == DBSettingDlg.DoModal()) { dbSetting = DBSettingDlg.GetDBSetting(); szDBInfo.SetString(szDBInfoFooter); CDBSetting::CreateDBInfoString(dbSetting, szDBInfo); return true; } return false; }