使用C语言操作本地MSSQL数据库

介绍

MSSQL是Microsoft SQL Server的简称,是一种关系型数据库管理系统(RDBMS)。使用C语言操作MSSQL数据库,可以使程序员在开发项目时,实现与数据库的交互功能,如:查询,插入,更新和删除等等。

准备工作

安装ODBC驱动

要在C语言中连接MSSQL数据库,首先需要安装Microsoft官方的ODBC驱动程序。下载地址为https://www.microsoft.com/en-us/download/details.aspx?id=36434。安装完毕后,可以在控制面板-管理工具-ODBC数据源中查看驱动安装情况。

创建MSSQL数据库表

在连接MSSQL数据库之前,我们需要创建一个数据库,并在这个数据库中创建一张表来验证连接情况。下面是创建表的示例代码:

CREATE DATABASE testDB

USE testDB

CREATE TABLE testTable

(

ID INT PRIMARY KEY,

NAME VARCHAR(20),

AGE INT

)

连接MSSQL数据库

连接MSSQL数据库需要使用ODBC驱动程序提供的API来实现。下面是连接MSSQL数据库的示例代码:

#include

#include

#include

#include

#include

int main()

{

SQLHANDLE sqlenvhandle;

SQLHANDLE sqlconnectionhandle;

SQLHANDLE sqlstatementhandle;

SQLRETURN retcode;

char SQLQuery[1024];

// Allocate SQL environment handle

retcode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &sqlenvhandle);

// Set the ODBC version environment attribute

retcode = SQLSetEnvAttr(sqlenvhandle, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0);

// Allocate SQL connection handle

retcode = SQLAllocHandle(SQL_HANDLE_DBC, sqlenvhandle, &sqlconnectionhandle);

// Connect to the DSN

retcode = SQLConnect(sqlconnectionhandle, (SQLCHAR*) "testDB", SQL_NTS, (SQLCHAR*) "sa", SQL_NTS, (SQLCHAR*) "password", SQL_NTS);

if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)

{

printf("\nConnection Successful\n");

// Allocate statement handle

retcode = SQLAllocHandle(SQL_HANDLE_STMT, sqlconnectionhandle, &sqlstatementhandle);

sprintf(SQLQuery, "SELECT * FROM testTable");

retcode = SQLExecDirect(sqlstatementhandle, (SQLCHAR*)SQLQuery, strlen(SQLQuery) );

SQLLEN id;

char name[20];

SQLLEN cbName= SQL_NTS;

SQLLEN age;

while(SQLFetch(sqlstatementhandle) == SQL_SUCCESS)

{

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

SQLGetData(sqlstatementhandle, 2, SQL_C_CHAR, name, 20, &cbName);

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

printf("%d, %s, %d\n", id, name, age);

}

// Free statement handle

retcode = SQLFreeHandle(SQL_HANDLE_STMT, sqlstatementhandle);

// Disconnect from the database

SQLDisconnect(sqlconnectionhandle);

}

// Free connection handle

retcode = SQLFreeHandle(SQL_HANDLE_DBC, sqlconnectionhandle);

// Free environment handle

SQLFreeHandle(SQL_HANDLE_ENV, sqlenvhandle);

return 0;

}

这个例子连接了名为testDB的数据库,使用用户名sa和密码password连接。它执行了一条SQL SELECT语句,并使用 SQLGetData从结果集中获取数据。这里是一个输出结果的示例:1, TestName, 18。

结论

本文介绍了在C语言中如何操作本地MSSQL数据库。首先通过安装ODBC驱动程序来连接数据库,然后创建测试表并使用示例代码连接并查询数据。希望本文能够为大家提供实现与数据库交互的基础知识和示例代码。

数据库标签