📄 crdbsdlg.cpp
字号:
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox (szError);
}
END_CATCH
}
void CCRDBSDlg::OnBtnProfessionMod()
{
if(!UpdateData())
return;
if(m_strConfigProfession.IsEmpty())
return;
int nItem = m_listProfession.GetNextItem(-1, LVNI_SELECTED);
//如果没有选择要修改的纪录,返回.
if(nItem == -1){
AfxMessageBox("没有选择要修改的职位信息");
return;
}
//从列表框控件中获取选择的职位信息.
int id = atoi(m_listProfession.GetItemText(nItem,0));
TRY{
CRecordset rs(&m_db);
CString sql;
//更新新的职位信息记录.
sql.Format("update Profession_info_tab "
"set Profession_name = '%s' "
"where Profession_id = %d",m_strConfigProfession,id);
TRACE(sql);
m_db.ExecuteSQL(sql);
//修改界面上的值.
m_listProfession.SetItemText(nItem,1,m_strConfigProfession);
//更新职位信息组合框的数据
RefreshProfComboData();
}
CATCH(CDBException,ex)
{
AfxMessageBox (ex->m_strError);
AfxMessageBox (ex->m_strStateNativeOrigin);
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox (szError);
}
END_CATCH
}
void CCRDBSDlg::OnBtnProfessionDel()
{
int nItem = m_listProfession.GetNextItem(-1, LVNI_SELECTED);
//如果没有选择要删除的纪录,返回.
if(nItem == -1){
AfxMessageBox("没有选择要删除的职位信息");
return;
}
//从列表框控件中获取选择的职位信息.
int id = atoi(m_listProfession.GetItemText(nItem,0));
TRY{
CString deletedSql;
//删除职位信息
deletedSql.Format("delete from Profession_info_tab where Profession_id = %d",id);
m_db.ExecuteSQL(deletedSql);
//删除界面上的数据
m_listProfession.DeleteItem(nItem);
//更新职位信息数据
RefreshProfComboData();
}
CATCH(CDBException,ex)
{
AfxMessageBox (ex->m_strError);
AfxMessageBox (ex->m_strStateNativeOrigin);
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox (szError);
}
END_CATCH
}
void CCRDBSDlg::OnBtnVocationAdd()
{
if(!UpdateData())
return;
if(m_strConfigVocation.IsEmpty())
return;
TRY{
CRecordset rs(&m_db);
CString sql;
//打开记录集,获取最大的行业ID值.
rs.Open(CRecordset::dynaset,
"Select max(Vocation_id) from Vocation_info_tab");
//设置新添加记录的行业ID值.
int newID = 1;
//如果数据库里面已经有记录了,则新的行业ID是行业ID最大值+1
if(!rs.IsEOF()) {
CDBVariant var;
rs.GetFieldValue((short)0, var, SQL_C_SLONG);
if (var.m_dwType != DBVT_NULL)
newID = var.m_iVal + 1;
}
//插入新的行业信息记录.
sql.Format("Insert into Vocation_info_tab(Vocation_id,"
"Vocation_name) "
"VALUES("
"%d,'%s')",newID,m_strConfigVocation);
TRACE(sql);
m_db.ExecuteSQL(sql);
//向界面中插入新的行业信息.
InsertConfigItem(&m_listVocation,newID,m_strConfigVocation);
//更新行业信息组合框的数据
RefreshVocComboData();
}
CATCH(CDBException,ex)
{
AfxMessageBox (ex->m_strError);
AfxMessageBox (ex->m_strStateNativeOrigin);
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox (szError);
}
END_CATCH
}
void CCRDBSDlg::OnBtnVocationMod()
{
if(!UpdateData())
return;
if(m_strConfigVocation.IsEmpty())
return;
int nItem = m_listVocation.GetNextItem(-1, LVNI_SELECTED);
//如果没有选择要修改的纪录,返回.
if(nItem == -1){
AfxMessageBox("没有选择要修改的行业信息");
return;
}
//从列表框控件中获取选择的行业信息.
int id = atoi(m_listVocation.GetItemText(nItem,0));
TRY{
CRecordset rs(&m_db);
CString sql;
//更新新的行业信息记录.
sql.Format("update Vocation_info_tab "
"set Vocation_name = '%s' "
"where Vocation_id = %d",m_strConfigVocation,id);
TRACE(sql);
m_db.ExecuteSQL(sql);
//修改界面上的值.
m_listVocation.SetItemText(nItem,1,m_strConfigVocation);
//更新行业信息组合框的数据
RefreshVocComboData();
}
CATCH(CDBException,ex)
{
AfxMessageBox (ex->m_strError);
AfxMessageBox (ex->m_strStateNativeOrigin);
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox (szError);
}
END_CATCH
}
void CCRDBSDlg::OnBtnVocationDel()
{
int nItem = m_listVocation.GetNextItem(-1, LVNI_SELECTED);
//如果没有选择要删除的纪录,返回.
if(nItem == -1){
AfxMessageBox("没有选择要删除的行业信息");
return;
}
//从列表框控件中获取选择的行业信息.
int id = atoi(m_listVocation.GetItemText(nItem,0));
TRY{
CString deletedSql;
//删除行业信息
deletedSql.Format("delete from Vocation_info_tab where Vocation_id = %d",id);
m_db.ExecuteSQL(deletedSql);
//删除界面上的数据
m_listVocation.DeleteItem(nItem);
//更新行业信息数据
RefreshVocComboData();
}
CATCH(CDBException,ex)
{
AfxMessageBox (ex->m_strError);
AfxMessageBox (ex->m_strStateNativeOrigin);
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox (szError);
}
END_CATCH
}
void CCRDBSDlg::OnBtnHrAdd()
{
if(!UpdateData())
return;
if(m_strName.IsEmpty()){
AfxMessageBox("姓名不能够为空");
return;
}
TRY{
m_db.BeginTrans();
CRecordset rs(&m_db);
CString sql;
//获取新的客户ID值.
// rs.Open(CRecordset::dynaset,
// "Select seq_human_id.NEXTVAL from customer_info_tab");
int newID = -1;
// if(!rs.IsEOF()) {
// CDBVariant var;
// rs.GetFieldValue((short)0, var, SQL_C_SLONG);
// if (var.m_dwType != DBVT_NULL)
// newID = var.m_iVal ;
// }
//插入新的客户信息记录.
sql.Format("execute add_customer_info_tab %d ,'%s','%s','%s','%s','%s',"
"'%s','%s','%s','%s','%s','%s'", newID,m_strName,m_strSelectedArea,
m_strSelectedProfession,m_strSelectedVocation,m_strCompany,m_strSelectedApproach,
m_strEmail,m_strPhone,m_strMobile,m_strInterest,m_strMemo);
TRACE(sql);
//AfxMessageBox(sql);
m_db.ExecuteSQL(sql);
sql.Format("Select id from customer_info_tab where "
"name = '%s'",m_strName);
rs.Open(CRecordset::dynaset,sql);
if(!rs.IsEOF()) {
CDBVariant var;
rs.GetFieldValue((short)0, var, SQL_C_SLONG);
if (var.m_dwType != DBVT_NULL)
newID = var.m_iVal;
}
rs.Close();
//向界面中插入新的客户信息.
InsertHRInfoItem(newID,m_strName,m_strSelectedArea,m_strSelectedProfession,m_strSelectedVocation,m_strCompany,m_strSelectedApproach,
m_strEmail,m_strPhone,m_strMobile,m_strInterest,m_strMemo);
m_db.CommitTrans();
}
CATCH(CDBException,ex)
{
AfxMessageBox (ex->m_strError);
AfxMessageBox (ex->m_strStateNativeOrigin);
m_db.Rollback();
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox (szError);
m_db.Rollback();
}
END_CATCH
}
void CCRDBSDlg::OnBtnHrMod()
{
if(!UpdateData())
return;
if(m_strName.IsEmpty()){
AfxMessageBox("姓名不能够为空");
return;
}
int nItem = m_listHR.GetNextItem(-1, LVNI_SELECTED);
//如果没有选择要修改的纪录,返回.
if(nItem == -1){
AfxMessageBox("没有选择要修改的客户信息");
return;
}
//从列表框控件中获取选择的客户信息.
int id = atoi(m_listHR.GetItemText(nItem,0));
TRY{
m_db.BeginTrans();
CRecordset rs(&m_db);
CString sql;
//插入新的客户信息记录.
sql.Format("execute add_customer_info_tab %d ,'%s','%s','%s','%s','%s',"
"'%s','%s','%s','%s','%s','%s' " ,id,m_strName,m_strSelectedArea,
m_strSelectedProfession,m_strSelectedVocation,m_strCompany,m_strSelectedApproach,
m_strEmail,m_strPhone,m_strMobile,m_strInterest,m_strMemo);
TRACE(sql);
m_db.ExecuteSQL(sql);
//向界面中插入新的客户信息.
//设置该行的其他列的值.
m_listHR.SetItemText(nItem,1,m_strName);
m_listHR.SetItemText(nItem,2,m_strSelectedArea);
m_listHR.SetItemText(nItem,3,m_strSelectedProfession);
m_listHR.SetItemText(nItem,4,m_strSelectedVocation);
m_listHR.SetItemText(nItem,5,m_strCompany);
m_listHR.SetItemText(nItem,6,m_strSelectedApproach);
m_listHR.SetItemText(nItem,7,m_strEmail);
m_listHR.SetItemText(nItem,8,m_strPhone);
m_listHR.SetItemText(nItem,9,m_strMobile);
m_listHR.SetItemText(nItem,10,m_strInterest);
m_listHR.SetItemText(nItem,11,m_strMemo);
m_db.CommitTrans();
}
CATCH(CDBException,ex)
{
AfxMessageBox (ex->m_strError);
AfxMessageBox (ex->m_strStateNativeOrigin);
m_db.Rollback();
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox (szError);
m_db.Rollback();
}
END_CATCH
}
void CCRDBSDlg::OnBtnHrDel()
{
int nItem = m_listHR.GetNextItem(-1, LVNI_SELECTED);
//如果没有选择要删除的纪录,返回.
if(nItem == -1){
AfxMessageBox("没有选择要删除的客户信息");
return;
}
//从列表框控件中获取选择的客户信息.
int id = atoi(m_listHR.GetItemText(nItem,0));
TRY{
m_db.BeginTrans();
CString deletedSql;
//删除客户信息
deletedSql.Format("delete from customer_info_tab where id = %d",id);
m_db.ExecuteSQL(deletedSql);
//删除界面上的数据
m_listHR.DeleteItem(nItem);
m_db.CommitTrans();
}
CATCH(CDBException,ex)
{
AfxMessageBox (ex->m_strError);
AfxMessageBox (ex->m_strStateNativeOrigin);
m_db.Rollback();
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox (szError);
m_db.Rollback();
}
END_CATCH
}
void CCRDBSDlg::OnBtnHrQuery()
{
if(!UpdateData())
return;
if(m_strName.IsEmpty()){
AfxMessageBox("姓名不能够为空");
return;
}
if(!m_db.IsOpen()){
MessageBox("数据库未打开");
return;
}
m_listHR.DeleteAllItems();
TRY{
CRecordset rs(&m_db);
//打开所有的客户信息记录,根据提供的姓名模糊查询
CString temp = "%";
CString sql;
sql.Format("select * from customer_info_tab where name like '%s%s%s'",
temp,m_strName,temp);
rs.Open(CRecordset::dynaset, sql);
while (!rs.IsEOF()) {
int id;
CString name,area,profession,vocation,company;
CString approach,email,phone,mobile,interest,memo;
CDBVariant var;
//获取客户信息ID字段值
rs.GetFieldValue((short)0, var, SQL_C_SLONG);
if (var.m_dwType != DBVT_NULL)
id = var.m_iVal;
var.Clear();
//获取姓名字段值
rs.GetFieldValue(1, name);
//获取地区信息字段值
rs.GetFieldValue(2, area);
//获取职业字段值
rs.GetFieldValue(3, profession);
//获取行业字段值
rs.GetFieldValue(4, vocation);
//获取所在单位字段值
rs.GetFieldValue(5, company);
//获取结识途径字段值
rs.GetFieldValue(6, approach);
//获取email字段值
rs.GetFieldValue(7, email);
//获取固定电话字段值
rs.GetFieldValue(8, phone);
//获取移动电话字段值
rs.GetFieldValue(9, mobile);
//获取爱好字段值
rs.GetFieldValue(10, interest);
//获取备注字段值
rs.GetFieldValue(11, memo);
//向客户信息列表框控件中加入新的一行信息.
InsertHRInfoItem(id,name,area,profession,vocation,company,approach,
email,phone,mobile,interest,memo);
rs.MoveNext();
}
rs.Close();
}
CATCH(CDBException,ex)
{
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 CCRDBSDlg::OnBtnDetailQuery()
{
//创建详细信息查询对话框实列.
CDetailQueryDlg dlg;
//把数据库的指针传入对话框中.
dlg.m_pDB = &m_db;
//打开详细信息查询对话框.
dlg.DoModal();
}
void CCRDBSDlg::OnBtnStatQuery()
{
// TODO: Add your control notification handler code here
//创建统计信息查询对话框实列.
CStatQueryDlg dlg;
//把数据库的指针传入对话框中.
dlg.m_pDB = &m_db;
//打开统计信息查询对话框.
dlg.DoModal();
}
void CCRDBSDlg::OnCancel()
{
// TODO: Add extra cleanup here
CDialog::OnCancel();
}
void CCRDBSDlg::OnOK()
{
// TODO: Add extra validation here
CDialog::OnOK();
}
void CCRDBSDlg::OnSysExit()
{
// TODO: Add your control notification handler code here
CDialog::OnOK();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -