C++数据库编程简介

C++数据库编程 ODBC简介

C++数据库编程 ODBC连接SQL Server数据库

C++数据库编程 ODBC插入数据

C++数据库编程 ODBC查询数据

C++数据库编程 ODBC删除数据

C++数据库编程 ODBC修改数据

C++数据库编程 ODBC连接MySQL增删改查数据

C++数据库编程 MySQL Connecttor C++简介

C++数据库编程 MySQL Connecttor C++增删改查

文章目录

  • 1. ODBC编程一般步骤
  • 2. 连接步骤
  • 3. 代码示例

1. ODBC编程一般步骤

  • 配置数据源
  • 初始化环境
  • 拼接SQL语句
  • 执行SQL语句遍历结果集
  • 释放ODBC连接

官方文档:Microsoft 开放式数据库连接 (ODBC) - SQL Server | Microsoft Docs

2. 连接步骤

  • 头文件

需要包含以下头文件

#include<Windows.h>
#include <sql.h>
#include <sqlext.h>
#include<sqltypes.h>
  • 分配环境句柄

连接到数据源的第一步是加载驱动程序管理器并使用 SQLAllocHandle分配环境句柄。

SQLHENV     hEnv = NULL;
ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hEnv);
if (SQL_SUCCESS == ret)
{wcout << _T("环境句柄分配成功!") << endl;
}
else
{return -1;
}
  • 设置环境属性

应用程序通过使用 SQL_ATTR_APP_ODBC_VER环境属性调用SQLSetEnVAttr:注册其符合的ODBC版本。

ret = SQLSetEnvAttr(hEnv, SQL_ATTR_ODBC_VERSION,    (SQLPOINTER)SQL_OV_ODBC3, 0);
  • 分配连接句柄

应用程序可以连接到数据源或驱动程序之前,它必须分配一个连接句柄。

SQLHDBC     hDbc = NULL;
ret = SQLAllocHandle(SQL_HANDLE_DBC, hEnv, &hDbc);
  • 连接数据库

分配环境和连接句柄并设置所有连接属性后,应用程序即可连接到数据源或驱动程序。

//根据DSN ,连接数据库
ret = SQLConnect(hDbc, (SQLTCHAR*)_T("SQLServerODBC"), SQL_NTS, (SQLTCHAR*)_T("sa"), SQL_NTS, (SQLTCHAR*)_T("Sa123"), SQL_NTS);
if ((ret == SQL_SUCCESS) || (ret == SQL_SUCCESS_WITH_INFO))
{wcout << _T("数据库连接成功!")<<endl;
}

SQLConnect 函数 - SQL Server | Microsoft Docs

  • 获取错误信息

SQLConnect 函数 - SQL Server | Microsoft Docs

else if (ret == SQL_ERROR)
{SQLTCHAR   state[128] = { 0 };SQLTCHAR   msg[128] = { 0 };//获取错误信息ret = SQLError(hEnv, hDbc, NULL, state, NULL, msg, sizeof(msg), NULL);wcout << state <<"   "<<  msg << endl;
}
  • 关闭数据库
//关闭数据库连接
ret = SQLDisconnect(hDbc);
if (ret == SQL_SUCCESS)
{wcout << _T("关闭数据库连接成功!") << endl;
}//释放连接句柄
if (hDbc)
{ ret = SQLFreeHandle(SQL_HANDLE_DBC, hDbc);
}
//释放环境句柄
if (hEnv)
{ret = SQLFreeHandle(SQL_HANDLE_ENV, hEnv);
}

3. 代码示例

//包含头文件
#include<Windows.h>
#include <sql.h>
#include <sqlext.h>
#include<sqltypes.h>
#include <tchar.h>#include <iostream>
using namespace std;int main()
{//设置为中文  _wsetlocale(LC_ALL, L"chs");SQLRETURN  ret = SQL_ERROR;//分配ODBC环境句柄SQLHENV     hEnv = NULL; ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hEnv); if (SQL_SUCCESS == ret){wcout << _T("环境句柄分配成功!") << endl; }else{return -1;}//设定ODBC的版本ret = SQLSetEnvAttr(hEnv, SQL_ATTR_ODBC_VERSION,    (SQLPOINTER)SQL_OV_ODBC3, 0);//分配数据库连接句柄SQLHDBC     hDbc = NULL;ret = SQLAllocHandle(SQL_HANDLE_DBC, hEnv, &hDbc);//根据DSN ,连接数据库ret = SQLConnect(hDbc, (SQLTCHAR*)_T("SQLServerODBC"), SQL_NTS, (SQLTCHAR*)_T("sa"), SQL_NTS, (SQLTCHAR*)_T("Sa123"), SQL_NTS);if ((ret == SQL_SUCCESS) || (ret == SQL_SUCCESS_WITH_INFO)){wcout << _T("数据库连接成功!")<<endl;}else if (ret == SQL_ERROR){SQLTCHAR   state[128] = { 0 };SQLTCHAR   msg[128] = { 0 };//获取错误信息ret = SQLError(hEnv, hDbc, NULL, state, NULL, msg, sizeof(msg), NULL);wcout << state <<"   "<<  msg << endl;}//关闭数据库连接ret = SQLDisconnect(hDbc);if (ret == SQL_SUCCESS){wcout << _T("关闭数据库连接成功!") << endl;}//释放连接句柄if (hDbc){ ret = SQLFreeHandle(SQL_HANDLE_DBC, hDbc);}//释放环境句柄if (hEnv){ret = SQLFreeHandle(SQL_HANDLE_ENV, hEnv);}return 0;
}

C++数据库编程 ODBC连接SQL Server数据库相关推荐

  1. C++中使用ODBC连接SQL Server数据库

    文章目录 整体总结 ODBC连接 一个修改别人的整体的例子 整体总结 用odbc过时了,还是使用ado吧,易用,高效率,不用配置odbc数据源,易维护,实际项目已从odbc中改用了ado,请看我的这篇 ...

  2. heidisql连接远程数据库_Heidisql如何连接sql server数据库并做增删改操作?

    Heidisql工具是一个功能强大的数据库连接工具,功能齐全.操作简单.用heidisql很容易完成sql server数据库的建表.删除表.更新表操作等等操作.接下来小编就给大家带来Heidisql ...

  3. C#操作数据库(一)【连接SQL Server数据库】

    首先声明命名空间 using System.Data.SqlClient; //微软发布的sqlserver数据库的ado.net程序集,引入后就可以使用SqlConnection.SqlComman ...

  4. html通过jsp连接sql数据库数据,jsp连接sql Server数据库教程(示例代码)

    jsp连接sqlServer数据库教程: 首先讲下我用的工具版本以供参考: jar包:jtds1.3.1.jar  下载地址:点击进入 数据库:SQL Server2012 服务器:Tomcat8.0 ...

  5. C#实现ODBC驱动代码连接Sql Server数据库

    ODBC连接Sql Server数据库-C#实现 利用ODBC驱动程序,可以以一种相同的语法来存取和维护数据表中的数据.为了便于在应用程序中使用ODBC,首先需要配置ODBC数据源,又称DSN,它把应 ...

  6. python数据库编程:Python基于Pymssql模块实现连接SQL Server数据库的方法详解

    本文实例讲述了Python基于Pymssql模块实现连接SQL Server数据库的方法.分享给大家供大家参考,具体如下: 数据库版本:SQL Server 2012. 按照Python版本来选择下载 ...

  7. QT连接SQL server 数据库

    Qt连接SQL server数据库 由于课程设计需要,需要用qt设计一个界面来操作数据库,在建立数据库连接时,期间遇到各种问题. Qt 连接SQL server数据大致可以概括为下图的三层模型,箭头代 ...

  8. VB.NET连接SQL server数据库解决方案(转载+亲自实践)

    原文来自:http://hi.baidu.com/mwd_3330410/blog/item/ba0ccd240a0902184c088d83.html Microsoft Visual Basic. ...

  9. java连接sql server数据库的代码如何改成连接mysql_连接sqlserver数据库代码

    Sql Server的JDBC测试程序与远程连接 参考文献: 1.MySql与oracle的JDBC测试程序 2.查看sqlserver的端口号 代码示例 在我的机器上安装了多个版本的sqlserve ...

  10. python cv2模块安装_python 连接sql server数据库,pymssql模块安装。

    python 连接sql server数据库,pymssql模块安装. python版本:python3.7 数据库版本:sql server 2016 连接sql server数据库,本菜鸟用的是p ...

最新文章

  1. 【Intellij IDEA】eclipse项目导入
  2. 使用MapReduce程序完成相关数据预处理(二)
  3. Python数据类型和分支循环
  4. leetcode 50 口诀
  5. Webfrom --图片验证码
  6. python nan_python [吐槽]关于nan类型时遇到的问题
  7. JQuery学习系列总结—菜单制作
  8. nginx php 扩展,源码安装Nginx+PHP-FPM及扩展
  9. 知乎App有哪些非常“贴心”的UI设计
  10. .Net语言 APP开发平台——Smobiler学习日志:实现手机上常见的ListMenuView
  11. 小觅相机SDK安装与报错解决
  12. elasticsearch怎么实现拼音首字母查询
  13. LabVIEW编程入门笔记
  14. 计算机网络中速率、带宽、吞吐量的区别
  15. scala 的上界下界
  16. 洛谷 P4643 [国家集训队]阿狸和桃子的游戏
  17. 极光推送之java后台封装REST API
  18. 读《茶树冷胁迫的全局基因表达谱》
  19. 邮箱服务之阿里云平台
  20. C++ STL容器:栈(stack)

热门文章

  1. Rational ClearCase批量merge合并
  2. python爬取新浪博客_python爬取韩寒博客的实例
  3. AppFabric 1.1: installation error 错误代码 1603 windows server 2016 sharepoint 2019 Preparation Tool
  4. MathType与Office公式编辑器的差异
  5. 【美赛备赛】word编辑公式全攻略
  6. 计算机组装维护理论知识大全,计算机组装与维护知识汇总.docx
  7. php数据库单循环显示,单循环赛制的PHP实现
  8. 实现音视频编解码工具 MediaCodec 创建解码器
  9. 自己的电脑怎么测网速
  10. 操作系统工具推荐 msicuu.exe