c语言连接数据库sqlserver
时间: 2023-10-26 21:06:37 浏览: 152
在 C 语言中,连接 SQL Server 数据库可以使用 Microsoft 提供的 ODBC API 接口。下面是一个简单的连接 SQL Server 数据库的示例代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <sql.h>
#include <sqlext.h>
int main() {
SQLHENV env; // 环境句柄
SQLHDBC dbc; // 连接句柄
SQLRETURN ret; // 返回值
// 初始化环境句柄
ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &env);
if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) {
printf("Failed to allocate environment handle\n");
return 1;
}
// 设置环境属性
ret = SQLSetEnvAttr(env, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0);
if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) {
printf("Failed to set environment attribute\n");
SQLFreeHandle(SQL_HANDLE_ENV, env);
return 1;
}
// 分配连接句柄
ret = SQLAllocHandle(SQL_HANDLE_DBC, env, &dbc);
if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) {
printf("Failed to allocate connection handle\n");
SQLFreeHandle(SQL_HANDLE_ENV, env);
return 1;
}
// 连接数据库
SQLCHAR* conn_str = "Driver={SQL Server};Server=localhost;Database=mydb;Uid=myusername;Pwd=mypassword;";
ret = SQLDriverConnect(dbc, NULL, conn_str, SQL_NTS, NULL, 0, NULL, SQL_DRIVER_COMPLETE);
if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) {
printf("Failed to connect to database\n");
SQLFreeHandle(SQL_HANDLE_DBC, dbc);
SQLFreeHandle(SQL_HANDLE_ENV, env);
return 1;
}
// 连接成功
printf("Connected to database successfully\n");
// 断开连接
SQLDisconnect(dbc);
// 释放连接句柄和环境句柄
SQLFreeHandle(SQL_HANDLE_DBC, dbc);
SQLFreeHandle(SQL_HANDLE_ENV, env);
return 0;
}
```
需要注意的是,连接字符串 `conn_str` 中需要填写正确的 SQL Server 服务器、数据库、用户名和密码等信息。另外,连接成功后可以使用 ODBC API 提供的函数执行 SQL 查询语句等操作。