在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í)際的表名、列名和要插入的值。