介绍
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驱动程序来连接数据库,然后创建测试表并使用示例代码连接并查询数据。希望本文能够为大家提供实现与数据库交互的基础知识和示例代码。