摘要:MySQL API中提供了对C语言的支持,C++是兼容C语言的,那么只要稍加完善就可以让C++写出来的程序直接连接MySQL,并且编程和执行的效率都比较高。

1、为什么使用MySQL C API

效率!C++可以通过多种方式连接上数据库,除了使用MySQL C之外,还可以配置ODBC来访问数据库(http://www.cnblogs.com/feisky/archive/2009/12/19/1627914.html)或者使用ADO来控制(http://www.vckbase.com/document/viewdoc/?id=37)。但是MySQL

C的方式最直接,并且我认为从程序运行效率还是编程的效率来看都是很有优势的。C++的特点就是高效,所以推荐使用MySQL CAPI。

2、我使用的环境

系统:Windows XP Professional SP3

IDE:Visual Studio 6.0 /Visual Studio 2010 Express

MySQL:MySQL Database Version 5.0.51b

3、开始前的准备

1、找到库文件和头文件的目录:

/mysql安装目录/Include

/mysql安装目录/lib/opt

2、从lib文件夹中拷贝出libmysql.dll到桌面上备用

3、如果你使用的是AppServ或者其他各种缩减版MySQL,可能会没有库文件和dll文件,这里提供下载(或者去网上下载好):http://dl.dbank.com/c019eqfx5j

(下图是下载后解压出来的文件和文件夹,放在任意位置都可以)

4、Visual C++ 6.0下的环境配置

打开Visual C++ 6.0,在菜单栏中选择“工具” - “选项”,移到“目录”选项卡...

在Library Files中添加MySQL的库文件目录:

在Include Files中添加MySQL的头文件目录:

5、Visual C++ 2010 Express 下的环境配置

vs2010不再是统一设置目录,而是在每次创建一个项目之后,为项目专门分配目录。

如下图,在已建好的项目上点击右键,选择“属性”

在属性对话框中,找到VC++目录一项,并设置包含目录(include)和库目录(lib)

6、编写示例程序

基本上,环境算是配置好了。再到MySQL看看有没有什么问题,没有的话新建一个数据库名为“test”,备用。

现在把下面的示例代码编译,然后把前面提到的libmysql.dll和代码放在同一文件夹里,连接、执行后如果显示“atabase connection OK!”说明连接成功。

示例程序代码如下:

#include "winsock.h"

#include "iostream.h"

#include "mysql.h"

#pragma comment(lib, "ws2_32.lib")

#pragma comment(lib, "libmysql.lib")

using namespace std;

void main()

{

MYSQL mydata;

mysql_library_init(0,NULL,NULL);//初始化MySQL C API库

mysql_init(&mydata);//初始化mydata的数据结构,mydata是MYSQL对象

mysql_options(&mydata,MYSQL_SET_CHARSET_NAME,"gbk");//连接选项:添加GBK字符集支持

//连接函数

if(mysql_real_connect(&mydata,"localhost","root","123456","test",3306,0,0) != NULL)

cout<

}

首先建立一个MYSQL的对象,这里命名为mydata,之后的操作都已这个对象为主。

然后是初始化C API库、初始化数据结构、添加汉字字符集支持,即可使用mysql_real_connect函数正式连上数据库。代码中的"localhost","root","123456","test"分别是数据库服务器、用户名、密码、所选数据库。这样简单的连接操作还是不够的,我会继续说明怎样来进行更多的开发使C++能够简单快速地调用MySQL的数据。

7、扩展阅读

2011年9月22日修订:增加VS2010环境配置说明

Tags: MySQL C++ API database

分享到:

2011-09-21 04:17

浏览 589

评论

mysql连接编程环境_C++连接MySQL(一):环境配置和实例相关推荐

  1. c#连接mysql数据库查询语句_C#连接MySQL数据库(增删改查)

    using System; using MySql.Data.MySqlClient; namespace CSharp直接连接MySQL { class Program { static void ...

  2. mysql数据通讯方式_c# 与 Mysql 的通讯方式总结

    两种开发方式 1.使用 vs 自带的可视化工具,不推荐. 在 vs 的项目中添加 '数据集',然后通过可视化的工具添加数据库为数据源,默认可添加 SQL Server 和 Oracle 等,添加 My ...

  3. c mysql 插入大量数据_C++操作MySQL大量数据插入效率低下的解决方法

    通常来说C++操作MySQL的时候,往Mysql中插入10000条简单数据,速度非常缓慢,居然要5分钟左右, 而打开事务的话,一秒不到就搞定了! 具体实现代码如下: #include #include ...

  4. python连接sqlite加密_C#连接加密的Sqlite数据库的方法

    对数据加密分两种,一种是对数据库本身进行加密,另一种是对数据表中的数据进行加密, 如果SQLite数据库加密,我这里使用的一个管理工具叫SQLiteDeveloper,如下就可以加密数据库 , 如果在 ...

  5. mysql 连接字符串 c#_C#版mysql连接字符串

    第一种方式.ODBC DSN 1.   // ODBC DSN 2. 3.   using System.Data.Odbc; 4. 5.   OdbcConnection conn = new Od ...

  6. java mysql数据库编程_java JDBC数据库(mysql)编程

    什么是JDBC • JDBC(Java Data Base Connectivity,Java数据库连接) • 是一种用于执行SQL语句的Java API,为多种关系数据库提供统一访问 • 它由一组用 ...

  7. c 读取mysql中表中数据_c#读取MySQL数据表中的内容

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  8. mysql c#开发库_c# 开发+MySql数据库

    今天就一个客户端的任务:1.把Excel文件转成特定格式插入到数据库中:2.查出该文件,并且导出Excel文件:3.如果插入数据错误,则把刚插入的数据删除掉.感觉比较简单,可是,墨迹了一天呀....总 ...

  9. mysql z中文乱码_c#写入Mysql中文显示乱码 解决方法 z

    Linux编程环境 yum -y install gcc gcc-c++ libtool-ltdl libtool-ltdl-devel openssl openssl-devel curl curl ...

最新文章

  1. 基于第三方开源库的OPC服务器开发指南(2)——LightOPC的编译及部署
  2. jquery的ajax,请求JSON数据。
  3. STM32 (Cortex-M3) 中NVIC(嵌套向量中断控制)的理解
  4. zookeeper+kafka+logstash+elasticsearc+kibana
  5. oracle数据库存储ip地址,oracle – 以十进制形式存储的IP地址 – PL / SQL以虚线四边形显示...
  6. storm的流分组策略
  7. 启动另一个activity
  8. Shiro系列-Shiro如何实现身份验证
  9. cluster oracle修改,Oracle 修改集群的资源属性(依赖关系)
  10. 洗衣机一边进水一边出水 更换排水阀皮碗
  11. [心情]一落千丈的反差
  12. 微信抽奖助手网络或服务器错误,微信抽奖助手怎样运用 抽奖助手运用办法
  13. 君不密则失臣,臣不密则失身,机事不密则害成
  14. LayoutManager实现翻页动画
  15. JavaScript交互式网页设计 • 【第3章 JavaScript浏览器对象模型】
  16. 微信小程序emoji表情输入框制作
  17. 复杂事件处理(CEP)的理解(上)
  18. 关闭计算机防火墙命令,win10系统关闭防火墙命令执行的设置方案
  19. 来自谷歌大脑的SpineNet:一种非常规的主干结构
  20. Redis5.0.x集群搭建

热门文章

  1. Eclipse插件开发总结(第二天)
  2. Android socket 编程 实现消息推送(一)
  3. 用Cmake编译Opencv源码,生成动态库
  4. mysql集群经常无法truncate_失败的mysql cluster配置-无法顺利转换已有数据
  5. boost ref, bind
  6. Filter若不写chain.doFilter(request,response)原Servlet路径代码不会被执行
  7. 跟我学Spring Cloud(Finchley版)-07-Ribbon入门
  8. react-native 安卓模拟器安卓_windows
  9. Spring/Spring Boot微服务项目 集成Druid 实现监控功能
  10. April Fools Contest 2017 题解源码(A,数学 B,数学 C,数学 D,字符串 E,数字逻辑 F,排序,卡时间,G,数学)...