c++中用odbc连接 SQL server数据库
时间: 2023-08-27 21:05:09 浏览: 55
在C语言中使用ODBC连接SQL Server数据库,需要以下步骤:
1. 安装ODBC驱动程序:下载并安装Microsoft SQL Server ODBC驱动程序,使其能够被程序调用。
2. 初始化ODBC环境:使用SQLAllocHandle函数初始化ODBC环境,为后续的连接操作做准备。
3. 建立连接:使用SQLConnect函数连接到SQL Server数据库,需要提供数据库的名称、用户名和密码等信息。
4. 执行SQL语句:使用SQLExecDirect函数执行SQL语句,可以是查询语句或更新语句等。
5. 处理结果:使用SQLBindCol函数绑定查询结果的每一列,然后使用SQLFetch函数获取每一行的数据。
6. 释放资源:使用SQLFreeStmt和SQLDisconnect函数释放连接和环境资源。
以下是一个使用ODBC连接SQL Server数据库的示例:
```
#include <stdio.h>
#include <sql.h>
#include <sqlext.h>
int main(void)
{
SQLHENV henv;
SQLHDBC hdbc;
SQLHSTMT hstmt;
SQLRETURN retcode;
SQLCHAR szDSN[] = "myDSN";
SQLCHAR szUID[] = "myUser";
SQLCHAR szPWD[] = "myPassword";
SQLCHAR szConnStr[1024];
SQLCHAR szSqlStmt[1024];
SQLCHAR szCol1[256];
SQLCHAR szCol2[256];
SQLINTEGER iCol1;
SQLINTEGER iCol2;
// 初始化ODBC环境
retcode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
retcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);
// 建立连接
sprintf(szConnStr, "DSN=%s;UID=%s;PWD=%s", szDSN, szUID, szPWD);
retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
retcode = SQLDriverConnect(hdbc, NULL, szConnStr, SQL_NTS, NULL, 0, NULL, SQL_DRIVER_COMPLETE);
// 执行SQL语句
sprintf(szSqlStmt, "SELECT col1, col2 FROM myTable");
retcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);
retcode = SQLExecDirect(hstmt, szSqlStmt, SQL_NTS);
// 处理结果
retcode = SQLBindCol(hstmt, 1, SQL_C_CHAR, szCol1, sizeof(szCol1), NULL);
retcode = SQLBindCol(hstmt, 2, SQL_C_LONG, &iCol2, 0, NULL);
while (SQLFetch(hstmt) == SQL_SUCCESS)
{
printf("%s, %d\n", szCol1, iCol2);
}
// 释放资源
retcode = SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
retcode = SQLDisconnect(hdbc);
retcode = SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
retcode = SQLFreeHandle(SQL_HANDLE_ENV, henv);
return 0;
}
```