📄 userlogin.cpp
字号:
// UserLogin.cpp : implementation file
//
#include "stdafx.h"
#include "eq_manager_sys.h"
#include "eq_manager_sysDlg.h"
#include "UserLogin.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
int CUserLogin::DBAflag = 1;
bool CUserLogin::flag = 1;
CString CUserLogin::UID = "";
//CString CUserLogin::PWD = "eq_system";
/////////////////////////////////////////////////////////////////////////////
// CUserLogin dialog
CUserLogin::CUserLogin(CWnd* pParent /*=NULL*/)
: CDialog(CUserLogin::IDD, pParent)
{
//{{AFX_DATA_INIT(CUserLogin)
m_ePassword = _T("");
m_eUser = _T("");
count=0;
m_Point1 = _T("");
m_Point2 = _T("");
m_Point3 = _T("");
m_Wait = _T("");
//}}AFX_DATA_INIT
}
void CUserLogin::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CUserLogin)
DDX_Text(pDX, IDC_EDIT_Password, m_ePassword);
DDX_Text(pDX, IDC_EDIT_User, m_eUser);
DDX_Text(pDX, IDC_STATIC_Point1, m_Point1);
DDX_Text(pDX, IDC_STATIC_Point2, m_Point2);
DDX_Text(pDX, IDC_STATIC_Point3, m_Point3);
DDX_Text(pDX, IDC_STATIC_Wait, m_Wait);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CUserLogin, CDialog)
//{{AFX_MSG_MAP(CUserLogin)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CUserLogin message handlers
void CUserLogin::ConnectDB()//function for connect DataBase
{
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 CUserLogin::OnCancel()
{
// TODO: Add extra cleanup here
m_db.Close();
CDialog::OnCancel();
}
void CUserLogin::OnOK()
{
// TODO: Add extra validation here
CString user_name,user_password,date,sql;
int year,month,day;
CString point[3];
CDBVariant user_power;
SYSTEMTIME st;
///display the waiting points
::SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT));
// m_Wait = "Please wait ...";
/* for(i=0;i<10;i++)
{
// UpdateData(TRUE);
for(j=0;j<3;j++)
{
(i%10==j)?(point[j]="."):(point[j]="");
}
m_Point1 = point[0];
m_Point2 = point[1];
m_Point3 = point[2];
UpdateData(FALSE);
for(j=0;j<100000;j++)
;
}*/
CUserLogin::ConnectDB();
if(!m_db.IsOpen())
{
MessageBox("数据库没打开");
return;
}
UpdateData(TRUE);
CRecordset rs(&m_db);
rs.Open(CRecordset::dynaset,"select * from eq_user");///get the recordset from DB
while(!rs.IsEOF())
{
rs.GetFieldValue((short)0,user_name);
rs.GetFieldValue((short)1,user_password);
rs.GetFieldValue((short)2,user_power,SQL_C_SLONG);
CUserLogin::UID = user_name;
if(m_eUser==user_name&&m_ePassword==user_password)
break;
rs.MoveNext();
}
if(!rs.IsEOF())//if username and password matched
{
///save the login user's info
if(user_power.m_dwType!=DBVT_NULL)
CUserLogin::DBAflag = user_power.m_lVal;
user_power.Clear();
// if(CUserLogin::DBAflag==1)
// {
// CUserLogin::UID = user_name;
// CUserLogin::PWD = user_password;
// }
//set the system time for Last_login in eq_user
::GetSystemTime(&st);
year = st.wYear;
month = st.wMonth;
day = st.wDay;
date.Format("%d-%d-%d",year,month,day);
sql.Format("update eq_user set Last_Login='%s' where user_name='%s'",date,m_eUser);
TRACE(sql);
m_db.ExecuteSQL(sql);
////close the recordset and db connection
rs.Close();
m_db.Close();
CDialog::OnOK();
}
else
{
rs.Close();
m_db.Close();
if(m_eUser!=user_name)
MessageBox("No Such User.Please contact with DBA.","登陆错误");
else
{
MessageBox("Error Password!","登陆错误");
}
m_eUser = "";
m_ePassword = "";
m_Wait = "";
UpdateData(FALSE);
/////every time user could login three times
while(count==2)
CDialog::OnCancel();
count++;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -