21xrx.com
2024-12-22 17:17:27 Sunday
登录
文章检索 我的文章 写文章
C++访问SQL Server教程
2023-07-13 21:24:24 深夜i     --     --
C++ SQL Server 访问 教程 编程

C++作为一门广泛应用于系统级开发和高性能科学计算的编程语言,在处理数据方面也有着良好的表现。而SQL Server作为一种常用的关系数据库管理系统(RDBMS),在数据存储方面拥有很高的稳定性和可靠性。本文将介绍如何使用C++访问SQL Server,实现数据的读取和写入。

1. 安装ODBC驱动

ODBC即“Open Database Connectivity”,是一种数据访问标准。在Windows上,ODBC驱动程序(ODBC driver)被用来连接RDBMS和ODBC应用程序。在本教程中,我们将使用ODBC连接SQL Server,并需要安装ODBC驱动程序。

2. 配置ODBC数据源

ODBC驱动程序是使用ODBC数据源来连接到数据库的。我们需要配置一个ODBC数据源来与SQL Server建立连接。配置ODBC数据源需要在Windows操作系统上进行。打开“管理工具”(Control Panel),找到ODBC数据源(ODBC Data Sources)并打开。在ODBC数据源管理员(ODBC Data Source Administrator)的“系统 DSN”(System DSN)标签页中,选择“添加”(Add)来添加数据源。选择“SQL Server Native Client 11.0”作为驱动程序并按照提示填写服务器名称、数据库名称、用户名和密码等信息。点击“测试连接”按钮来测试连接是否正常。

3. 使用C++访问SQL Server

在C++中,我们通过ODBC API来访问数据库。ODBC API是以C语言为基础的接口,可以跨越不同的操作系统和数据库系统。在Windows上,我们可以使用ODBC API来连接SQL Server数据库。下面是使用ODBC API访问SQL Server的示例代码:


#include <windows.h>

#include <sqlext.h>

int main(){

  SQLHENV henv = SQL_NULL_HENV;

  SQLHDBC hdbc = SQL_NULL_HDBC;

  SQLHSTMT hstmt = SQL_NULL_HSTMT;

  SQLCHAR ConnStrIn[1024];

  SQLCHAR ConnStrOut[1024];

  SQLSMALLINT ConnStrOutLen;

  // 初始化环境句柄

  SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);

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

  // 初始化连接句柄

  SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);

  // 连接数据库

  strcpy_s((char*)ConnStrIn, sizeof(ConnStrIn),

       "DRIVER={SQL Server Native Client 11.0};"

       "SERVER=localhost;"

       "DATABASE=TestDB;"

       "UID=sa;"

       "PWD=my_password;");

  SQLDriverConnect(hdbc, NULL, ConnStrIn, SQL_NTS, ConnStrOut, sizeof(ConnStrOut), &ConnStrOutLen, SQL_DRIVER_COMPLETE);

  // 准备查询语句

  SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);

  SQLPrepare(hstmt, (SQLCHAR*)"SELECT * FROM mytable", SQL_NTS);

  // 执行查询语句

  SQLExecute(hstmt);

  while (SQLFetch(hstmt) != SQL_NO_DATA) {

    int id, age;

    char name[256];

    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);

  }

  // 释放资源

  SQLFreeHandle(SQL_HANDLE_STMT, hstmt);

  SQLDisconnect(hdbc);

  SQLFreeHandle(SQL_HANDLE_DBC, hdbc);

  SQLFreeHandle(SQL_HANDLE_ENV, henv);

  return 0;

}

该代码会连接到名为“TestDB”的SQL Server数据库中的一张名为“mytable”的表。然后,它会执行一个查询语句,将结果打印到控制台中。在这个例子中,我们假定该表包含三个列:一个整数(ID)、一个字符串(Name)和一个整数(Age)。

总结

本文介绍了如何使用C++访问SQL Server。我们首先需要安装ODBC驱动程序,并配置ODBC数据源。然后,我们使用ODBC API来连接数据库并执行查询语句。这种方法适用于需要在C++应用程序中使用SQL Server数据库的开发者。虽然这种方法需要编写较多的代码,但它提供了灵活性和可扩展性,并允许我们使用C++的许多优点,如性能和强大的类型检查。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复