首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

MFC ODBC 連接 SQL Server 2005 完整實戰教學

     編輯:關於SqlServer

本文記錄使用 MFC ODBC 類別 (CDatabase, CRecordset) 連接 SQL Server 2005 並實現基本 CRUD 操作的完整流程,適合初学者快速上手。

步驟 1:建立資料庫與資料表

使用 SQL Server Management Studio 建立資料庫 Test01 及所需資料表(如 UserInfo)。

步驟 2:設定 ODBC 資料來源 (DSN)

  1. 控制台 → 系統管理工具 → 資料來源 (ODBC) → 使用者 DSN → 新增。
  2. 選擇 SQL Server 驅動程式。
  3. 資料來源名稱:TestSQL01,選擇目標伺服器。
  4. 認證方式:Windows 驗證或 SQL Server 驗證。
  5. 關鍵步驟:勾選「變更預設資料庫」,選擇 Test01。否則連線預設指向 master,導致「物件名稱無效」錯誤。
  6. 完成並「測試資料來源」確認成功。

步驟 3:程式碼實作連線

#include  // MFC ODBC 標頭

// 成員變數
CDatabase m_db;
CRecordset rs;

// OnInitDialog 或初始化函式
TRY {
    m_db.OpenEx(_T("DSN=TestSQL01;"), CDatabase::noOdbcDialog);
    rs.m_pDatabase = &m_db;
}
CATCH(CDBException, e) {
    AfxMessageBox(e->m_strError);
}
END_CATCH

步驟 4:基本資料操作

查詢

CString sql = _T("SELECT PassWord FROM UserInfo WHERE UserID = 123");
CString psd;
TRY {
    rs.Open(AFX_DB_USE_DEFAULT_TYPE, sql);
    if (!rs.IsEOF()) rs.GetFieldValue(_T("PassWord"), psd);
    rs.Close();
}
CATCH(CDBException, e) { AfxMessageBox(e->m_strError); }
END_CATCH

新增/修改/刪除

CString sql = _T("INSERT INTO UserInfo(UserID, UserName) VALUES(123, 'Bob')");
TRY {
    m_db.ExecuteSQL(sql);
}
CATCH(CDBException, e) { AfxMessageBox(e->m_strError); }
END_CATCH

常見坑點與提示

  • DSN 預設資料庫未設正確 → 找不到資料表。
  • CRecordset 使用完畢必須 Close(),否則連線佔用不釋放。
  • 大量資料操作建議改用 CRecordset::AddNew/Edit/Update 批次模式,或直接執行 SQL 批次。
  • 錯誤處理務必包含 CDBException、CMemoryException、CException 三層捕捉。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved