c++连接sqlserver数据库
时间: 2023-09-24 15:05:48 浏览: 113
c++ 连接数据库 源码及详细解释
4星 · 用户满意度95%
在C语言中连接SQL Server数据库,需要使用ODBC API。以下是连接数据库的基本步骤:
1. 安装ODBC驱动程序:在连接SQL Server之前,需要安装Microsoft SQL Server ODBC驱动程序。可以从Microsoft官网下载适用于所需操作系统版本的驱动程序。
2. 初始化ODBC环境:在连接数据库之前,需要初始化ODBC环境。可以使用ODBC API中的SQLAllocHandle函数来分配ODBC环境句柄。
3. 连接数据库:使用ODBC API中的SQLConnect函数连接数据库。需要指定数据库名称、用户名和密码等连接参数。
4. 执行SQL语句:使用ODBC API中的SQLExecDirect函数执行SQL语句。可以执行SELECT语句来查询数据,也可以执行INSERT、UPDATE和DELETE语句来修改数据。
5. 关闭连接:使用ODBC API中的SQLDisconnect函数关闭与数据库的连接。
以下是一个简单的示例代码,演示如何连接SQL Server数据库:
```
#include <stdio.h>
#include <sql.h>
#include <sqlext.h>
int main()
{
SQLHENV env; // ODBC环境句柄
SQLHDBC dbc; // ODBC连接句柄
SQLRETURN ret; // ODBC函数返回值
// 初始化ODBC环境
ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &env);
ret = SQLSetEnvAttr(env, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0);
// 连接数据库
ret = SQLAllocHandle(SQL_HANDLE_DBC, env, &dbc);
ret = SQLConnect(dbc, (SQLCHAR*)"myserver", SQL_NTS, (SQLCHAR*)"myuser", SQL_NTS, (SQLCHAR*)"mypassword", SQL_NTS);
// 执行SQL语句
SQLCHAR* query = (SQLCHAR*)"SELECT * FROM mytable";
HSTMT stmt;
ret = SQLAllocHandle(SQL_HANDLE_STMT, dbc, &stmt);
ret = SQLExecDirect(stmt, query, SQL_NTS);
// 处理查询结果
SQLCHAR name[50];
SQLINTEGER age;
while (SQLFetch(stmt) == SQL_SUCCESS)
{
SQLGetData(stmt, 1, SQL_C_CHAR, name, sizeof(name), NULL);
SQLGetData(stmt, 2, SQL_C_LONG, &age, 0, NULL);
printf("%s\t%d\n", name, age);
}
// 关闭连接
ret = SQLDisconnect(dbc);
ret = SQLFreeHandle(SQL_HANDLE_DBC, dbc);
ret = SQLFreeHandle(SQL_HANDLE_ENV, env);
return 0;
}
```
阅读全文