📄 dba_depclass.cpp
字号:
// DBA_DepClass.cpp : implementation file
//
#include "stdafx.h"
#include "eq_manager_sys.h"
#include "DBA_DepClass.h"
#include "eq_manager_sysDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDBA_DepClass dialog
CDBA_DepClass::CDBA_DepClass(CWnd* pParent /*=NULL*/)
: CDialog(CDBA_DepClass::IDD, pParent)
{
//{{AFX_DATA_INIT(CDBA_DepClass)
m_Id = _T("");
m_Name = _T("");
//}}AFX_DATA_INIT
}
void CDBA_DepClass::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDBA_DepClass)
DDX_Control(pDX, IDC_COMBO_Name, m_Combo_Name);
DDX_Control(pDX, IDC_COMBO_Id, m_Combo_Id);
DDX_CBString(pDX, IDC_COMBO_Id, m_Id);
DDX_CBString(pDX, IDC_COMBO_Name, m_Name);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDBA_DepClass, CDialog)
//{{AFX_MSG_MAP(CDBA_DepClass)
ON_BN_CLICKED(IDC_BUTTON_Insert, OnBUTTONInsert)
ON_CBN_SELCHANGE(IDC_COMBO_Id, OnSelchangeCOMBOId)
ON_CBN_SELCHANGE(IDC_COMBO_Name, OnSelchangeCOMBOName)
ON_BN_CLICKED(IDC_BUTTON_Delete, OnBUTTONDelete)
ON_BN_CLICKED(IDC_BUTTON_Modify, OnBUTTONModify)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDBA_DepClass message handlers
BOOL CDBA_DepClass::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
ConnectDB();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CDBA_DepClass::ConnectDB()//连接数据库函数
{
TRY
{
m_db.OpenEx("DSN=ORADB;UID=eq_system;PWD=eq_system",CDatabase::noOdbcDialog);
}
CATCH(CDBException,ex)
{
AfxMessageBox("问题出在连接数据库");
AfxMessageBox(ex->m_strError);
AfxMessageBox(ex->m_strStateNativeOrigin);
}
AND_CATCH(CMemoryException,pEx)
{
pEx->ReportError();
AfxMessageBox("memory exception");
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox(szError);
}
END_CATCH
InitCtrlData();
}
void CDBA_DepClass::InitCtrlData()
{
CRecordset rs(&m_db);
rs.Open(CRecordset::dynaset,"select * from eq_class");
m_Combo_Id.ResetContent();
while(!rs.IsEOF())
{
CString class_id,class_name;
rs.GetFieldValue((short)0,class_id);
rs.GetFieldValue((short)1,class_name);
m_Combo_Id.AddString(class_id);
m_Combo_Name.AddString(class_name);
rs.MoveNext();
}
}
void CDBA_DepClass::OnBUTTONInsert()
{
// TODO: Add your control notification handler code here
TRY
{
CString sql;
CString Name[50];
CString Id[50];
int count=0,i;
UpdateData(TRUE);
if(m_Id!="")
{
if(m_Name!="")
{
CRecordset rs(&m_db);
rs.Open(CRecordset::dynaset,"select * from eq_class");
while(!rs.IsEOF())
{
rs.GetFieldValue((short)0,Id[count]);
rs.GetFieldValue((short)1,Name[count]);
count++;
rs.MoveNext();
}
for(i=0;i<count;i++)
{
if(m_Id==Id[i])
{
MessageBox("不能插入重复ID!");
return;
}
if(m_Name==Name[i])
{
MessageBox("不能插入重复Name!");
return;
}
}
sql.Format("Insert into eq_class values('%s','%s',0,0)",m_Id,m_Name);
TRACE(sql);
m_db.ExecuteSQL(sql);
MessageBox("插入成功!");
//dlg.ConnectDB();
}
else
MessageBox("设备类别名不能为空!");
}
else
MessageBox("设备类别号不能为空!");
}
CATCH(CDBException,ex)
{
AfxMessageBox("插入操作失败!");
AfxMessageBox(ex->m_strError);
AfxMessageBox(ex->m_strStateNativeOrigin);
}
AND_CATCH(CMemoryException,pEx)
{
pEx->ReportError();
AfxMessageBox("memory exception");
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox(szError);
}
END_CATCH
}
void CDBA_DepClass::OnSelchangeCOMBOId()
{
// TODO: Add your control notification handler code here
CString sql,Id;
m_Combo_Id.GetLBText(m_Combo_Id.GetCurSel(),Id);
sql.Format("select eq_class_name from eq_class where eq_class_id = '%s'",Id);
m_Id = Id;
CRecordset rs(&m_db);
rs.Open(CRecordset::dynaset,sql);
while(!rs.IsEOF())
{
CString class_name;
rs.GetFieldValue((short)0,class_name);
m_Name=class_name;
rs.MoveNext();
}
rs.Close();
UpdateData(FALSE);
}
void CDBA_DepClass::OnSelchangeCOMBOName()
{
// TODO: Add your control notification handler code here
CString sql,Name;
m_Combo_Name.GetLBText(m_Combo_Name.GetCurSel(),Name);
CRecordset rs(&m_db);
sql.Format("select eq_class_id from eq_class where eq_class_name = '%s'",Name);
m_Name = Name;
rs.Open(CRecordset::dynaset,sql);
while(!rs.IsEOF())
{
CString class_id;
rs.GetFieldValue((short)0,class_id);
m_Id=class_id;
rs.MoveNext();
}
rs.Close();
UpdateData(FALSE);
}
void CDBA_DepClass::OnBUTTONDelete()
{
// TODO: Add your control notification handler code here
CString sql;
TRY
{
sql.Format("Delete eq_class where eq_class_Id = '%s'",m_Id);
TRACE(sql);
m_db.ExecuteSQL(sql);
MessageBox("删除成功!");
}
CATCH(CDBException,ex)
{
AfxMessageBox("删除操作失败!");
AfxMessageBox(ex->m_strError);
AfxMessageBox(ex->m_strStateNativeOrigin);
}
AND_CATCH(CMemoryException,pEx)
{
pEx->ReportError();
AfxMessageBox("memory exception");
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox(szError);
}
END_CATCH
}
void CDBA_DepClass::OnBUTTONModify()
{
// TODO: Add your control notification handler code here
CString mysql;
//CEq_manager_sysDlg dlg;
UpdateData(TRUE);
TRY
{
mysql.Format("Update eq_class set eq_class_Name = '%s' where eq_class_Id = '%s'",m_Name,m_Id);
TRACE(mysql);
m_db.ExecuteSQL(mysql);
MessageBox("更新成功!");
//dlg.ConnectDB();
}
CATCH(CDBException,ex)
{
AfxMessageBox("更新操作失败!");
AfxMessageBox(ex->m_strError);
AfxMessageBox(ex->m_strStateNativeOrigin);
}
AND_CATCH(CMemoryException,pEx)
{
pEx->ReportError();
AfxMessageBox("memory exception");
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox(szError);
}
END_CATCH
}
void CDBA_DepClass::OnOK()
{
// TODO: Add extra validation here
m_db.Close();
CDialog::OnOK();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -