ODBC连接MySQL
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相关推荐
- mysql的odbc连接字符串_MySQL :: linux ODBC连接mysql
linux ODBC连接mysql Posted by: Junquan Liu Date: August 28, 2013 11:38PM 想通过oracle连接mysql,根据网上的指引,先安装u ...
- MFC通过ODBC连接mysql(使用VS2012编写MFC)
原创文章,转载请注明原文:MFC通过ODBC连接mysql(使用VS2012编写MFC) By Lucio.Yang 1.ODBC连接mysql 首先ODBC是什么呢? 开放数据库互连(Open Da ...
- 怎么用odbc连接mysql数据库连接_PowerDesigner通过ODBC来实现Mysql数据库的连接操作...
win7 64位 PowerDesigner ODBC 连接 mysql 报Connection failed的处理方案 如果你装的是64位系统,在控制面板->管理工具中打开的ODBC管理器也是 ...
- centos odbc mysql_Centos下安装并配置ODBC连接MySQL 【转】
找到一篇英文的关于Linux下ODBC的安装和配置,在此根据自己的需要截取部分记录一下. 安装并配置ODBC ODBC连接器是一个数据库抽象层,它可以让Asterisk与广泛的数据库进行通信,而无需开 ...
- VS通过ODBC连接MYSQL(一)
我们将VS通过ODBC连接MYSQL,分为两步:第一步,ODBC连接MYSQL:第二步,VS连通ODBC.下一篇博客,我会通过代码 展示VS通过ODBC查询数据库的数据 一.ODBC连接MYSQL 二 ...
- sas eg连接mysql_SAS通过odbc连接mysql方法
SAS使用odbc连接mysql方法: 一.从mysql数据库官网下载mysql和mysql odbc driver并安装. 二.安装完之后,在控制面板-管理工具-数据源-驱动程序,添加mysql驱动 ...
- Excel 使用ODBC 连接mysql 5.0
ODBC 是连接数据的一种方式,叫直连接,在操作系统是xp 32位的系统下,本身没有对mysql ODBC 的支持. 需要到mysql 的官方去下载,http://dev.mysql.com/down ...
- Excel通过ODBC连接MySQL
下载ODBC 下载链接 ODBC下载 选择你安装的MySQL相应的版本,以及OS Version. 安装ODBC 安装过程中可能提示需要安装Visual Stdio之类的,按照提示进行安装. 连接上M ...
- C#使用ODBC连接MySql数据库
方法一: 1.安装mysql的odbc驱动 2.代码中添加引用 using System.Data.Odbc; 3.对于数据库表结构: 4.表内容如下: 5.代码如下: 6.运行结果: 7.代码 ...
- 64位操作系统(WIN10)+32位LabVIEW(2020)+64位MySQL,Windows10系统下用32位ODBC连接MySQL
1.首先得安装"Connector/ODBC",就是MySQL的ODBC驱动,这个是与应用程序相关的,而不是与操作系统相关的,也就是说,不管你的系统是X64还是X86,只要你的应用 ...
最新文章
- FPGA逻辑设计回顾(12)RAM以及ROM的RTL设计及其验证
- Python for Data Analysis
- 【线上分享】机器视觉编码标准与技术进展
- python自动化框架测试实操_自动化框架之 python+selenium+pytest
- 使用PSD设计网页页面
- AGC 030 B - Tree Burning
- pip导包CalledProcessError: Command ‘(‘lsb_release‘, ‘-a‘)‘异常处理
- selenium定位方式
- linux系统学习第六天
- 《Oracle高性能SQL引擎剖析:SQL优化与调优机制详解》一2.3 执行计划各个列的含义...
- Lytain:PCWin10纯净专业版重装与程序员的高效部署
- Kubernetes 一键部署实践
- 【元胞自动机】基于元胞自动机实现双车道靠右行驶交通流模型matlab代码
- Latex特殊符号大全(高清)
- 树莓派4b 调整屏幕分辨率
- 如何快速发表一篇SCI论文
- BurpSuite使用详解(三)Spider功能
- 国潮迎春 百花旗放|2022东方丽人旗袍大赛暨国潮旗袍春晚华丽落幕
- Intel 至强E5/E7 V4 CPU与至强可扩展CPU性能对比表
- java中Scanner,Randon,ArrayList