c语言连接sqlserver的代码
时间: 2023-01-12 19:13:05 浏览: 175
下面是一个示例代码,它使用 ODBC API 在 C 语言中连接到 SQL Server 数据库:
```
#include <stdio.h>
#include <sql.h>
#include <sqlext.h>
int main() {
SQLHENV env;
SQLHDBC dbc;
SQLHSTMT stmt;
SQLRETURN ret; /* ODBC API return status */
/* 分配环境句柄 */
ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &env);
if (!SQL_SUCCEEDED(ret)) {
fprintf(stderr, "Failed to allocate environment handle\n");
return 1;
}
/* 设置环境句柄的版本 */
ret = SQLSetEnvAttr(env, SQL_ATTR_ODBC_VERSION, (void *) SQL_OV_ODBC3, 0);
if (!SQL_SUCCEEDED(ret)) {
fprintf(stderr, "Failed to set environment handle attribute\n");
return 1;
}
/* 分配连接句柄 */
ret = SQLAllocHandle(SQL_HANDLE_DBC, env, &dbc);
if (!SQL_SUCCEEDED(ret)) {
fprintf(stderr, "Failed to allocate connection handle\n");
return 1;
}
/* 设置连接字符串 */
ret = SQLDriverConnect(dbc, NULL,
"DRIVER={SQL Server};SERVER=localhost,1433;DATABASE=test;UID=test;PWD=test",
SQL_NTS, NULL, 0, NULL, SQL_DRIVER_NOPROMPT);
if (!SQL_SUCCEEDED(ret)) {
fprintf(stderr, "Failed to connect to database\n");
return 1;
}
/* 分配语句句柄 */
ret = SQLAllocHandle(SQL_HANDLE_STMT, dbc, &stmt);
if (!SQL_SUCCEEDED(ret)) {
fprintf(stderr, "Failed to allocate statement handle\n");
return 1;
}
/* 执行查询 */
ret = SQLExecDirect(stmt, "SELECT * FROM test_table", SQL_NTS);
if (!SQL_SUCCEEDED(ret)) {
fprintf(stderr, "Failed to execute query\n");
return 1;
}
/* 处理结果集 */
// ...
/* 释放语句句柄 */
ret = SQLFreeHandle(SQL_HANDLE_
阅读全文