首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C++ ADO 連接 SQL Server:資料庫數據能否直接賦值給變量?

     編輯:程式設計疑難解答

答案是完全可以。ADO (ActiveX Data Objects) 是微軟提供的 COM 組件,C++ 通過 `#import "msado15.dll"` 導入類型庫後,即可用 `_RecordsetPtr` 讀取欄位值並轉換為 C++ 基本類型。

核心步驟

  1. 初始化 COM:CoInitialize(NULL);
  2. 建立連接:_ConnectionPtr conn; conn.CreateInstance(__uuidof(Connection));
  3. 執行 SQL 獲取記錄集:_RecordsetPtr rs = conn->Execute(...);
  4. 逐行讀取並轉型:
while (!rs->adoEOF) {
    int id = rs->GetCollect("id");           // 自動轉 int
    _bstr_t name = rs->GetCollect("name");   // 轉字符串
    double price = rs->GetCollect("price");  // 轉 double
    // 賦值給你的 C++ 變量 / 結構體 / 容器
    rs->MoveNext();
}

注意事項

  • 用完必須 rs->Close()、conn->Close()、CoUninitialize() 釋放資源;
  • 捕獲 `_com_error` 異常處理連接失敗、SQL 錯誤;
  • 若專案已用 MFC,可直接用 `CADORecordset` 封裝類更簡潔。

最佳回答提到的「使用 MySQL API」顯然搞錯了資料庫類型(ADO 針對 SQL Server/Oracle/Access),請以 ADO 官方文檔為準。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved