在C++中使用ADO(ActiveX Data Objects)库来添加记录,需要以下几个步骤:
1. 引入头文件和命名空间:
#include <iostream>#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "EndOfFile")
using namespace ADODB;
2. 创建数据库连接对象和记录集对象:
_ConnectionPtr pConn = NULL;_RecordsetPtr pRs = NULL;
try {
// 创建连接对象
HRESULT hr = pConn.CreateInstance(__uuidof(Connection));
if (FAILED(hr)) {
throw std::runtime_error("Failed to create connection object.");
}
// 打开数据库连接
pConn->Open("Provider=SQLOLEDB;Data Source=your_server;Initial Catalog=your_database;User ID=your_username;Password=your_password;", "", "", adConnectUnspecified);
// 创建记录集对象
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; // 发生异常时返回错误代码
}
3. 编写SQL语句并执行:
try {// 插入记录的SQL语句
std::wstring sql = L"INSERT INTO TableName (Column1, Column2, ...) VALUES ('Value1', 'Value2', ...)";
// 执行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; // 发生错误时返回错误代码
}
4. 关闭连接和释放资源:
pRs->Close();pConn->Close();
::CoUninitialize();
上述代码使用了C++中的ADODB库来添加记录。你需要根据你的数据库类型、数据库服务器地址、数据库名称、用户名和密码等信息,修改连接字符串(connection string)中的相关参数。同时,你还需要替换TableName、Column1、Value1等为实际的表名、列名和要插入的值。