ODBC连接MySQL(IDE:codeblocks)

1. ODBC概述

ODBC(Open Database Connectivity),开放数据库互连。它为编写关系数据库的客户软件提供了一种统一的接口。ODBC 提供一个标准的 API,可用于处理不同数据库的客户应用程序。使用ODBC API 的应用程序可以与任何具有ODBC驱动程序的关系数据库进行通信。ODBC 是为客户应用程序访问关系数据库时提供的一个标准的接口,对于不同的数据库,ODBC 提供了统一的 API,使用该 API 来访问任何提供了 ODBC 驱动程序的数据库。客户程序,ODBC接口,数据库驱动程序和数据库关系如下:

2. 配置ODBC数据源

我使用C++语言来连接MySQL数据库,IDE为codeblocks,操作系统windows7(windows10也是一样的)。连接数据库前需要先配置ODBC数据源。

1)安装MySQL的ODBC驱动程序

驱动程序下载地址https://dev.mysql.com/downloads/connector/odbc/

如果没有安装VS的话,要下载老版本的32位驱动(新版本需要VS的支持),如下图。接下来只需要安装即可(完全安装)。

2)添加ODBC数据源

首先打开ODBC数据源管理器,有两种打开方法

a. 控制面板下打开ODBC

b. 打开文件:C:\Windows\SysWOW64\odbcad32.exe

建议使用第二种方式,第一种方式打开可能无法检测到之前安装的驱动程序。打开后如下所示:

点击添加,选择MySQL ODBC驱动程序。

然后填写如下信息,用户名和密码填写数据库的登录名和密码,数据源名自己自己随意起,TCP/IP Server可以不用填或者填localhost,这里只是连接本地的数据库;点击Details设置编码格式为GBK,这样可以正常显示中文;Database中会自动检测已有的数据库,不过需要先开启MySQL服务(net start mysql),选择你想要连接的数据库。点击完成。

名为test1的ODBC数据源创建成功,点击配置可修改配置。

3. Codeblocks IDE执行环境配置

codeblocks需要链接如下的dll文件才可以编译通过ODBC编程的各种函数。确保电脑里存在这个文件,否则网上下载。

至此C++通过ODBC连接数据库的所有的环境配置就完成了。接下来就是编码连接数据库。

4. 示例程序

1.ODBC连接数据库流程

分配环境句柄→分配连接句柄→连接数据源→分配语句句柄→执行SQL语句→释放语句句柄→断开数据源的连接→释放连接句柄→释放环境句柄。

2. 实例程序说明

#include<windows.h>
#include<iostream>
#include <assert.h>
#include<sql.h>
#include <sqlext.h>
using namespace std;
main(){SQLHENV serverhenv;SQLHDBC serverhdbc;SQLHSTMT serverhstmt;SQLRETURN ret;SQLCHAR sno[20]={0},sex[20]={0},sname[20]={0},dept[20]={0},classno[20]={0},bdate[30]={0},cno[20]={0},cname[20]={0},semester[10]={10};SQLINTEGER grade=0,length;//分配环境句柄ret = SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&serverhenv);//设置环境属性ret = SQLSetEnvAttr(serverhenv,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0);if(!SQL_SUCCEEDED(ret)){cout<<"AllocEnvHandle error!"<<endl;system("pause");}//分配连接句柄ret = SQLAllocHandle(SQL_HANDLE_DBC,serverhenv,&serverhdbc);if(!SQL_SUCCEEDED(ret)){cout<<"AllocDbcHandle error!"<<endl;system("pause");}//数据库连接ret = SQLConnect(serverhdbc,(SQLCHAR*)"test1",SQL_NTS,(SQLCHAR*)"数据库用户名",SQL_NTS,(SQLCHAR*)"数据库密码",SQL_NTS);//第二个参数是之前配置的数据源,后面是数据库用户名和密码if(!SQL_SUCCEEDED(ret)){cout<<"SQL_Connect error!"<<endl;system("pause");\}//分配执行语句句柄ret = SQLAllocHandle(SQL_HANDLE_STMT,serverhdbc,&serverhstmt);//执行SQL语句ret=SQLExecDirect(serverhstmt,(SQLCHAR*)"insert into course values('C00','数据结构',00,5,'春');",SQL_NTS);ret=SQLExecDirect(serverhstmt,(SQLCHAR*)"select cno,cname,semester from course",SQL_NTS);if(ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO){//绑定数据SQLBindCol(serverhstmt,1, SQL_C_CHAR, (void*)cno,sizeof(cno), &length);SQLBindCol(serverhstmt,2, SQL_C_CHAR, (void*)cname,sizeof(cname), &length);SQLBindCol(serverhstmt,3, SQL_C_CHAR, (void*)semester,sizeof(semester), &length);//将光标移动到下行,即获得下行数据while(SQL_NO_DATA != SQLFetch(serverhstmt)){cout<<"cno:"<<cno<<" cname:"<<cname<<" semester:"<<semester;cout<<endl;}}//释放语句句柄ret=SQLFreeHandle(SQL_HANDLE_STMT,serverhstmt);if(SQL_SUCCESS!=ret && SQL_SUCCESS_WITH_INFO != ret)cout<<"free hstmt error!"<<endl;//断开数据库连接ret=SQLDisconnect(serverhdbc);if(SQL_SUCCESS!=ret&&SQL_SUCCESS_WITH_INFO!=ret)cout<<"disconnected error!"<<endl;//释放连接句柄ret=SQLFreeHandle(SQL_HANDLE_DBC,serverhdbc);if(SQL_SUCCESS!=ret&&SQL_SUCCESS_WITH_INFO!=ret)cout<<"free hdbc error!"<<endl;//释放环境句柄句柄ret=SQLFreeHandle(SQL_HANDLE_ENV,serverhenv);if(SQL_SUCCESS!=ret&&SQL_SUCCESS_WITH_INFO!=ret)cout<<"free henv error!"<<endl;system("pause");
}

程序执行前的course表格

程序执行后添加了“数据结构这门课”

查看数据库发现确实用C++实现了对数据库的操作

ODBC连接MySQL相关推荐

  1. mysql的odbc连接字符串_MySQL :: linux ODBC连接mysql

    linux ODBC连接mysql Posted by: Junquan Liu Date: August 28, 2013 11:38PM 想通过oracle连接mysql,根据网上的指引,先安装u ...

  2. MFC通过ODBC连接mysql(使用VS2012编写MFC)

    原创文章,转载请注明原文:MFC通过ODBC连接mysql(使用VS2012编写MFC) By Lucio.Yang 1.ODBC连接mysql 首先ODBC是什么呢? 开放数据库互连(Open Da ...

  3. 怎么用odbc连接mysql数据库连接_PowerDesigner通过ODBC来实现Mysql数据库的连接操作...

    win7 64位 PowerDesigner ODBC 连接 mysql 报Connection failed的处理方案 如果你装的是64位系统,在控制面板->管理工具中打开的ODBC管理器也是 ...

  4. centos odbc mysql_Centos下安装并配置ODBC连接MySQL 【转】

    找到一篇英文的关于Linux下ODBC的安装和配置,在此根据自己的需要截取部分记录一下. 安装并配置ODBC ODBC连接器是一个数据库抽象层,它可以让Asterisk与广泛的数据库进行通信,而无需开 ...

  5. VS通过ODBC连接MYSQL(一)

    我们将VS通过ODBC连接MYSQL,分为两步:第一步,ODBC连接MYSQL:第二步,VS连通ODBC.下一篇博客,我会通过代码 展示VS通过ODBC查询数据库的数据 一.ODBC连接MYSQL 二 ...

  6. sas eg连接mysql_SAS通过odbc连接mysql方法

    SAS使用odbc连接mysql方法: 一.从mysql数据库官网下载mysql和mysql odbc driver并安装. 二.安装完之后,在控制面板-管理工具-数据源-驱动程序,添加mysql驱动 ...

  7. Excel 使用ODBC 连接mysql 5.0

    ODBC 是连接数据的一种方式,叫直连接,在操作系统是xp 32位的系统下,本身没有对mysql ODBC 的支持. 需要到mysql 的官方去下载,http://dev.mysql.com/down ...

  8. Excel通过ODBC连接MySQL

    下载ODBC 下载链接 ODBC下载 选择你安装的MySQL相应的版本,以及OS Version. 安装ODBC 安装过程中可能提示需要安装Visual Stdio之类的,按照提示进行安装. 连接上M ...

  9. C#使用ODBC连接MySql数据库

     方法一: 1.安装mysql的odbc驱动 2.代码中添加引用 using System.Data.Odbc; 3.对于数据库表结构: 4.表内容如下: 5.代码如下: 6.运行结果: 7.代码 ...

  10. 64位操作系统(WIN10)+32位LabVIEW(2020)+64位MySQL,Windows10系统下用32位ODBC连接MySQL

    1.首先得安装"Connector/ODBC",就是MySQL的ODBC驱动,这个是与应用程序相关的,而不是与操作系统相关的,也就是说,不管你的系统是X64还是X86,只要你的应用 ...

最新文章

  1. FPGA逻辑设计回顾(12)RAM以及ROM的RTL设计及其验证
  2. Python for Data Analysis
  3. 【线上分享】机器视觉编码标准与技术进展
  4. python自动化框架测试实操_自动化框架之 python+selenium+pytest
  5. 使用PSD设计网页页面
  6. AGC 030 B - Tree Burning
  7. pip导包CalledProcessError: Command ‘(‘lsb_release‘, ‘-a‘)‘异常处理
  8. selenium定位方式
  9. linux系统学习第六天
  10. 《Oracle高性能SQL引擎剖析:SQL优化与调优机制详解》一2.3 执行计划各个列的含义...
  11. Lytain:PCWin10纯净专业版重装与程序员的高效部署
  12. Kubernetes 一键部署实践
  13. 【元胞自动机】基于元胞自动机实现双车道靠右行驶交通流模型matlab代码
  14. Latex特殊符号大全(高清)
  15. 树莓派4b 调整屏幕分辨率
  16. 如何快速发表一篇SCI论文
  17. BurpSuite使用详解(三)Spider功能
  18. 国潮迎春 百花旗放|2022东方丽人旗袍大赛暨国潮旗袍春晚华丽落幕
  19. Intel 至强E5/E7 V4 CPU与至强可扩展CPU性能对比表
  20. java中Scanner,Randon,ArrayList

热门文章

  1. LWM2M,MQTT与CoAP区别和联系
  2. 【人脸质量评估】SDD-FIQA基于人脸相似度分布距离的无监督质量评估方法
  3. kettle官方使用文档地址
  4. 如何写一份校招简历(Java实习岗位)
  5. 最简单DIY基于ESP8266的国产WS2812智能彩灯④(在网页用按钮点亮)
  6. 网络安全|墨者学院在线靶场|投票系统程序设计缺陷分析
  7. java调用Shell脚本
  8. 华为模拟器eNSP安装教程
  9. STM32串口接收以及发送大全
  10. Excel使用技巧之分割字符串