본문 바로가기
C & C++/C & C++

[Tip] 로그인 인증 확인

by izen8 2011. 4. 28.
반응형
[ DB 이용]

 void CloginDlg::OnBnClickedOk()
{
     UpdateData(TRUE);
  CloginDlg Dlg;
  CWnd* m_pMainWnd;
  m_pMainWnd = ::AfxGetMainWnd();


  loginOdbc namecard;
  namecard.Open();  //레코드셋 열기
  
  CString id = m_idedit;   //ID에디트창의 Value변수를 id에 저장
  CString pass = m_pass;  //Pass에디트창의 Value변수를 pass저장
    
  if(namecard.IsBOF()) return;  //현재 레코드가 처음보다 순서상으로 앞서는 검사
  
  while(!namecard.IsEOF()){    //현재레코드가 빈레코드인지 검사
   CString DBid = namecard.m_Id;
   CString DBpass = namecard.m_Pass;
   
   if(0 == id.GetLength())    //에디트창의 길이를 구해서 검사를 하는부분
   {
     AfxMessageBox(_T("ID를 입력해주세요"));
     return;
   }
   else if(0 == pass.GetLength())  //에디트창의 길이를 구해서 검사를 하는부분
   {
    AfxMessageBox(_T("패스워드를 입력해주세요"));
     return;
   }
   else if(DBid == id  &&  DBpass == pass)  //입력받은 id와pass를 DB의 id,pass와 비교한다
   {
     m_pMainWnd->ShowWindow(SW_SHOW); //만약 id,pass가 일치하면 메인화면을 띄운다.
     m_pMainWnd->UpdateWindow();
     m_pMainWnd->CenterWindow();
     SendMessage(WM_CLOSE,0,0);    //로그인창은 닫는다
     return;
    
   }
   namecard.MoveNext();     //레코드포인터를 다음레코드로 이동

  }
  
  namecard.MoveLast();       //래코드포인터를 마지막레코드로 이동
 
  AfxMessageBox(_T("ID 또는 패스워드가  틀렸습니다."));  //다 검사했는데 일치하는게없으니

                                                                                 //이걸 출력
}

반응형

'C & C++ > C & C++' 카테고리의 다른 글

API 주요 함수  (0) 2011.04.29
사용자 정의 이벤트(Event)  (0) 2011.04.29
[공통] 메모리 누수 추적  (0) 2011.04.28
CFileDialog::GetFolderPath() 에러 대처법  (0) 2011.04.28
프린트 인쇄 관련  (0) 2011.04.28

댓글