bool LRunSql::CommitTrans()
{
return (!FAILED(m_database->CommitTrans()));
}
bool LRunSql::RollbackTrans()
{
return (!FAILED(m_database->RollbackTrans()));
}
4.1.5登陆对话框设计
4.1.5.1 实现目标
程序启动后,首先进入系统登陆程序验证用户密码。系统登陆程序主要实现如下功能。
输入密码的控件采用文本框。密码如果输入正确,进入系统,否则将提示错误,并返回密码输入框。
记录错误次数,录入密码错误3次将自动退出系统。
系统登陆程序运行结果如下图:
4.1.5.2 设计思路
(1)判断用户密码是否与数据库密码相符,若相符,进入系统。
(2)增加变量m_iLogOnCount,记录错误次数。
4.1.5.3 程序开发步骤
(1)增加对话框资源,设计窗体资源符号为IDD_LOGIN_DIALOG。在对话框中添加相关的资源。
(2)系统登陆程序要在显示主窗体之前显示,在BOOL CshoppingApp
::InitInstance()中加入如下代码:
if(!AfxOleInit())//这就是初始化COM库
{
AfxMessageBox("OLE初始化出错!");
return FALSE;
}
751com.cn
pdlg->DoModal(); //显示主窗口
delete pdlg;
pdlg=NULL;
}
LRunSql::Close(); //断开数据库连
(3)当用户单击【确定】时,进行密码判断和次数判断。处理【确定】按钮的消息响应函数如下:
void CDlgLogin::OnOK()
751com.cn ,sUserName,sInputPassWord,sUserID;
LRunSql m_runsql;
CString sql;
_variant_t value;
CString sError;
// 更新数据变量
this->m_editPassWord.GetWindowText(sInputPassWord);
this->m_editUserName.GetWindowText(sUserName);
CShoppingApp* App=(CShoppingApp*)AfxGetApp();
sql.Format("select 员工_编号 from 员工 where 员工_姓名='%s'",
sUserName);
if(m_runsql.CheckSQLResult(sql))
{
value=m_runsql.m_recordset->GetCollect("员工_编号");
if(value.vt!=VT_NULL)
sUserID=(char*)(_bstr_t)value;
sql.Format("select 登陆_密码 from 登陆 where 员工_编号='%s'", sUserID);
if(m_runsql.CheckSQLResult(sql))
{
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] 下一页