用C++写一个操作sql server数据库的类
时间: 2024-10-11 11:15:24 浏览: 19
C++操作SqlServer数据库
5星 · 资源好评率100%
在C++中,我们可以利用ODBC (Open Database Connectivity) 或者ADO (ActiveX Data Objects) 来编写一个操作SQL Server数据库的类。这里是一个简单的示例,展示如何使用ODBC来创建一个基本的数据库连接和查询类:
```cpp
#include <windows.h>
#include <sql.h>
#include <sqlext.h>
class SQLServerDB {
private:
HDBC dbc; // 数据库连接句柄
HSTMT stmt; // 语句句柄
public:
// 构造函数
SQLServerDB(const char* server, const char* database, const char* user, const char* password) {
SQLRETURN ret;
SQLCHAR szDSN[512];
SQLCHAR szUser[512], szPassword[512];
strncat_s(szDSN, "DSN=SQL Server;SERVER=" server, sizeof(szDSN));
strncat_s(szDSN, ";DATABASE=" database, sizeof(szDSN));
strncat_s(szUser, "UID=" user, sizeof(szUser));
strncat_s(szUser, ";PWD=" password, sizeof(szUser));
// 初始化ODBC环境
sqlAllocHandle(SQL_HANDLE_DBC, SQL_NULL_HANDLE, &dbc);
ret = sqlConnect(dbc, szDSN, SQL_NTS, NULL, 0, NULL);
if (ret != SQL_SUCCESS) {
// 错误处理...
return;
}
// 创建游标
sqlAllocHandle(SQL_HANDLE_STMT, dbc, &stmt);
}
~SQLServerDB() {
if (stmt) {
sqlFreeHandle(SQL_HANDLE_STMT, stmt);
}
if (dbc) {
sqlDisconnect(dbc);
sqlFreeHandle(SQL_HANDLE_DBC, dbc);
}
}
// 示例方法,执行SQL查询
void ExecuteQuery(const char* query) {
SQLCHAR szSql[512];
SQLLEN len;
sqlstrcpy_s(szSql, sizeof(szSql), query);
sqlExecDirect(stmt, szSql, SQL_NTS, NULL, &len, SQL_NTS);
if (SQL_SUCCEEDED(len)) {
// 执行成功后的处理...
} else {
// 错误处理...
}
}
};
阅读全文