溫馨提示×

c++中ADO添加記錄的方法是什么

c++
小億
107
2023-08-08 11:43:25
欄目: 編程語言

在C++中使用ADO(ActiveX Data Objects)庫來添加記錄,需要以下幾個(gè)步驟:

1. 引入頭文件和命名空間:

   #include <iostream>

   #import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "EndOfFile")

   using namespace ADODB;

2. 創(chuàng)建數(shù)據(jù)庫連接對象和記錄集對象:

  _ConnectionPtr pConn = NULL;

   _RecordsetPtr pRs = NULL;

   try {

       // 創(chuàng)建連接對象

       HRESULT hr = pConn.CreateInstance(__uuidof(Connection));

       if (FAILED(hr)) {

           throw std::runtime_error("Failed to create connection object.");

       }

       // 打開數(shù)據(jù)庫連接

       pConn->Open("Provider=SQLOLEDB;Data Source=your_server;Initial Catalog=your_database;User ID=your_username;Password=your_password;", "", "", adConnectUnspecified);

       // 創(chuàng)建記錄集對象

       hr = pRs.CreateInstance(__uuidof(Recordset));

       if (FAILED(hr)) {

           throw std::runtime_error("Failed to create recordset object.");

       }

   } catch (const std::exception& e) {

       std::cout << "Exception: " << e.what() << std::endl;

       return 1; // 發(fā)生異常時(shí)返回錯(cuò)誤代碼

   }

3. 編寫SQL語句并執(zhí)行:

 try {

       // 插入記錄的SQL語句

       std::wstring sql = L"INSERT INTO TableName (Column1, Column2, ...) VALUES ('Value1', 'Value2', ...)";

       

       // 執(zhí)行SQL語句

       pRs->Open(sql.c_str(), _variant_t((IDispatch*)pConn, true), adOpenStatic, adLockOptimistic, adCmdText);

       std::cout << "Record added successfully." << std::endl;

   } catch (const _com_error& e) {

       std::cout << "COM Error: " << e.ErrorMessage() << std::endl;

       return 1; // 發(fā)生錯(cuò)誤時(shí)返回錯(cuò)誤代碼

   }

4. 關(guān)閉連接和釋放資源:

  pRs->Close();

   pConn->Close();

   ::CoUninitialize();

上述代碼使用了C++中的ADODB庫來添加記錄。你需要根據(jù)你的數(shù)據(jù)庫類型、數(shù)據(jù)庫服務(wù)器地址、數(shù)據(jù)庫名稱、用戶名和密碼等信息,修改連接字符串(connection string)中的相關(guān)參數(shù)。同時(shí),你還需要替換TableName、Column1、Value1等為實(shí)際的表名、列名和要插入的值。


0