C语言如何连接SQL数据库并实现查询 (c 连接sql数据库并查询)

随着信息化进程的推广,数据库系统成为了信息管理的必备工具之一,对于程序员而言,了解和掌握如何连接数据库,实现数据的增删改查也变得越来越重要。本文将从以下三个方面介绍。

一、连接SQL数据库

1.1 下载所需的库文件

要想使用C语言操作数据库,需要下载相应的库文件。目前使用较多的SQL Server数据库可以下载ODBC驱动程序。

1.2 引入库文件

在C语言程序中引入下载并安装好的ODBC库文件头文件和库文件,如下所示:

#include

#include

#include

#include

#include

#include

其中,包含了ODBC的头文件sql.h,sqlext.h和Windows.h。

1.3 初始化数据库连接

在程序中创建句柄,用于连接数据库,并初始化环境变量。如下所示:

SQLHENV henv;

SQLHDBC hdbc;

SQLHSTMT hstmt;

SQLCHAR *connStr = “DRIVER={SQL Server}; SERVER=localhost; UID=sa; PWD=sa123456; DATABASE=db_name”;

SQLRETURN ret;

ret = SQLAllocHandle(SQL_HANDLE_ENV, NULL, &henv);

ret = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void *) SQL_OV_ODBC3, 0);

ret = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);

ret = SQLDriverConnect(hdbc, NULL, (SQLCHAR *) connStr, SQL_NTS, NULL, 0, NULL, SQL_DRIVER_COMPLETE);

其中,SQL_RETURN是ODBC中的一种返回类型,表示函数执行成功与否;connStr是连接字符串,包括连接的数据库名、用户名和密码等信息。

二、执行查询

2.1 编写SQL语句

在C语言程序中编写需要执行的SQL语句。例如,下面的代码查询了员工表中所有的员工信息:

char *sql = “SELECT * FROM employee”;

2.2 设置环境变量

在程序中使用句柄获取需要执行的SQL语句,设置执行环境变量。如下所示:

ret = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);

ret = SQLExecDirect(hstmt, (SQLCHAR *) sql, SQL_NTS);

其中,SQL_HANDLE_STMT表示语句句柄类型,hstmt表示语句句柄,SQLExecDirect函数执行SQL语句。

2.3 获取查询结果

在程序中获取查询结果,使用fetch函数获取一条记录,如下所示:

while ((ret = SQLFetch(hstmt)) == SQL_SUCCESS) {

int id, age;

char name[20];

SQLGetData(hstmt, 1, SQL_C_LONG, &id, 0, NULL);

SQLGetData(hstmt, 2, SQL_C_CHAR, name, sizeof(name), NULL);

SQLGetData(hstmt, 3, SQL_C_LONG, &age, 0, NULL);

printf(“id = %d, name = %s, age = %d\n”, id, name, age);

}

其中,SQL_C_LONG和SQL_C_CHAR是ODBC中的数据类型,表示整型和字符型,具体可参考ODBC开发文档。

三、断开连接

在程序完毕之后,需要关闭数据库连接,如下所示:

ret = SQLFreeHandle(SQL_HANDLE_STMT, hstmt);

ret = SQLDisconnect(hdbc);

ret = SQLFreeHandle(SQL_HANDLE_DBC, hdbc);

ret = SQLFreeHandle(SQL_HANDLE_ENV, henv);

其中,SQLFreeHandle函数用于释放使用完毕的句柄资源。


数据运维技术 » C语言如何连接SQL数据库并实现查询 (c 连接sql数据库并查询)