C++数据库编程 ODBC连接SQL Server数据库
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数据库相关推荐
- C++中使用ODBC连接SQL Server数据库
文章目录 整体总结 ODBC连接 一个修改别人的整体的例子 整体总结 用odbc过时了,还是使用ado吧,易用,高效率,不用配置odbc数据源,易维护,实际项目已从odbc中改用了ado,请看我的这篇 ...
- heidisql连接远程数据库_Heidisql如何连接sql server数据库并做增删改操作?
Heidisql工具是一个功能强大的数据库连接工具,功能齐全.操作简单.用heidisql很容易完成sql server数据库的建表.删除表.更新表操作等等操作.接下来小编就给大家带来Heidisql ...
- C#操作数据库(一)【连接SQL Server数据库】
首先声明命名空间 using System.Data.SqlClient; //微软发布的sqlserver数据库的ado.net程序集,引入后就可以使用SqlConnection.SqlComman ...
- html通过jsp连接sql数据库数据,jsp连接sql Server数据库教程(示例代码)
jsp连接sqlServer数据库教程: 首先讲下我用的工具版本以供参考: jar包:jtds1.3.1.jar 下载地址:点击进入 数据库:SQL Server2012 服务器:Tomcat8.0 ...
- C#实现ODBC驱动代码连接Sql Server数据库
ODBC连接Sql Server数据库-C#实现 利用ODBC驱动程序,可以以一种相同的语法来存取和维护数据表中的数据.为了便于在应用程序中使用ODBC,首先需要配置ODBC数据源,又称DSN,它把应 ...
- python数据库编程:Python基于Pymssql模块实现连接SQL Server数据库的方法详解
本文实例讲述了Python基于Pymssql模块实现连接SQL Server数据库的方法.分享给大家供大家参考,具体如下: 数据库版本:SQL Server 2012. 按照Python版本来选择下载 ...
- QT连接SQL server 数据库
Qt连接SQL server数据库 由于课程设计需要,需要用qt设计一个界面来操作数据库,在建立数据库连接时,期间遇到各种问题. Qt 连接SQL server数据大致可以概括为下图的三层模型,箭头代 ...
- VB.NET连接SQL server数据库解决方案(转载+亲自实践)
原文来自:http://hi.baidu.com/mwd_3330410/blog/item/ba0ccd240a0902184c088d83.html Microsoft Visual Basic. ...
- java连接sql server数据库的代码如何改成连接mysql_连接sqlserver数据库代码
Sql Server的JDBC测试程序与远程连接 参考文献: 1.MySql与oracle的JDBC测试程序 2.查看sqlserver的端口号 代码示例 在我的机器上安装了多个版本的sqlserve ...
- python cv2模块安装_python 连接sql server数据库,pymssql模块安装。
python 连接sql server数据库,pymssql模块安装. python版本:python3.7 数据库版本:sql server 2016 连接sql server数据库,本菜鸟用的是p ...
最新文章
- 【Intellij IDEA】eclipse项目导入
- 使用MapReduce程序完成相关数据预处理(二)
- Python数据类型和分支循环
- leetcode 50 口诀
- Webfrom --图片验证码
- python nan_python [吐槽]关于nan类型时遇到的问题
- JQuery学习系列总结—菜单制作
- nginx php 扩展,源码安装Nginx+PHP-FPM及扩展
- 知乎App有哪些非常“贴心”的UI设计
- .Net语言 APP开发平台——Smobiler学习日志:实现手机上常见的ListMenuView
- 小觅相机SDK安装与报错解决
- elasticsearch怎么实现拼音首字母查询
- LabVIEW编程入门笔记
- 计算机网络中速率、带宽、吞吐量的区别
- scala 的上界下界
- 洛谷 P4643 [国家集训队]阿狸和桃子的游戏
- 极光推送之java后台封装REST API
- 读《茶树冷胁迫的全局基因表达谱》
- 邮箱服务之阿里云平台
- C++ STL容器:栈(stack)
热门文章
- Rational ClearCase批量merge合并
- python爬取新浪博客_python爬取韩寒博客的实例
- AppFabric 1.1: installation error 错误代码 1603 windows server 2016 sharepoint 2019 Preparation Tool
- MathType与Office公式编辑器的差异
- 【美赛备赛】word编辑公式全攻略
- 计算机组装维护理论知识大全,计算机组装与维护知识汇总.docx
- php数据库单循环显示,单循环赛制的PHP实现
- 实现音视频编解码工具 MediaCodec 创建解码器
- 自己的电脑怎么测网速
- 操作系统工具推荐 msicuu.exe