MFC 連接 odbc SQLserver2000 實例~!

終於連接成功並可以操作數據庫了 哎 對我我這個菜鳥來說是 很興奮的一步~!

下面記錄代碼~!

 

#include<afxdb.h>  //連接數據庫需要的頭文件~!

#include"stdlib.h"

......

  ///添加數據庫連接函數
 CDatabase  m_db;
 CRecordset m_Set;
 try
 {

                                //DSN="數據庫名稱" UID = “用戶名” //PWD=“密碼”
  m_db.OpenEx(_T("DSN=ZZNDB;UID=sa;PWD=111111"),CDatabase::noOdbcDialog);  
  m_Set.m_pDatabase = &m_db;
 }
 catch(CDBException* ex)
 {
  AfxMessageBox(ex->m_strError);
  AfxMessageBox(ex->m_strStateNativeOrigin);
 }
 catch(CMemoryException *pEx)
 {
    pEx->ReportError();
 AfxMessageBox(_T("memory exception"));

 }
 catch(CException *e)
 {
  TCHAR szError[100];
  e->GetErrorMessage(szError,100);
 }
CString sql = _T("SELECT passwords FROM longin where username ='zzn'");
 CString psd; //存放查詢結果
 TRY  //以前沒有用過的TRY CATCH~!
 {
  m_Set.Open(AFX_DB_USE_DEFAULT_TYPE,sql);
  m_Set.GetFieldValue(_T("passwords"),psd);
 }
 CATCH(CDBException,ex);
 {
  AfxMessageBox(ex->m_strError);
  AfxMessageBox(ex->m_strStateNativeOrigin);
 }
 AND_CATCH(CMemoryException,pEx)
 {
  pEx->ReportError();
  AfxMessageBox(_T("memory exception"));
 }
 END_CATCH
  
  int n =lstrlen(psd);
  char *Temp = new char[n];
  
  
  WideCharToMultiByte(CP_ACP,0,psd,-1,Temp,256,NULL,NULL); //由於產生寬字符所以需要用函數進行轉換~!


  //   pTemp =*(char) psd.GetBuffer(psd.GetLength()); //無寬字符情況下可以用這個方法得到行對應的*char

  if(strcmp((const char*)Temp,(const char*)"111111")==0)
  {
  AfxMessageBox(_T("密碼正確~!"));
  }

。。。。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章