1、  首先安装MySQL数据库server,本文安装的是mysql-installer-community-5.6.10.1.msi这个版本号。至于各个版本号有什么不同,不在这里说明。

例如以下的默认安装的安装文件夹结构截图:

2、 接着配置环境变量。这个纯粹是要为了在命令行下使用mysql的相关命令更加方便。如

例如以下设置就可以。有些安装包已经自己主动给加入上了这个路径,仅仅须要检查一下就可以。

3、 先在命令行下创建一个数据samp_db,并在创建表students。建库和建表都相对简单,例如以下截图是已经建好的。

创建数据库命令例如以下:

>createdatabase samp_db character set gbk;

使用数据库samp_db

>usesamp_db;

创建数据表

>createtable students

           id int unsigned not null auto_increment primary key,

           name char(8) not null,

           sex char(4) not null,

           age tinyint unsigned not null,

           tel char(13) null default "-",

           address char(60),

           modifyDateTime char(30)

);

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2FibWFpbA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

4、  设置server同意网络訪问,即将一个host设置为通配符%,就可以同意网络上的主机訪问这个server。

>use mysql;

>select 'host' from user whereuser='root';


>update user set host = '%' where user ='root';


>flush privileges;

5、 使用MySQL API訪问数据库,即分为初始化,连接,设置。操作。

加入头文件

#include "mysql.h"

在程序依赖附加项中加入库。

libmysql.lib

详细实现代码例如以下:

void CTestMysqlUseAPIDlg::OnBnClickedOk()
{
//TODO: 在此加入控件通知处理程序代码
MYSQL*con;
MYSQL_RES*res;
MYSQL_ROWrow; //数据库配置
chartmp[400];
chardbuser[30] = "root"; //数据库username
chardbpasswd[30] = ""; //password
chardbip[30] = "192.168.1.101"; //数据库serverIP地址
intnport = 3306; //数据库server端口号
chardbname[30] = "samp_db"; //数据库名
chartablename[30] = "students"; //表名
char*query = NULL; unsignedint t;
intcount = 0;
intrt;//return value //1、将初始化MYSQL对象
con= mysql_init((MYSQL*)0); //2、连接数据库 相当在在window命令行下运行 mysql -h 192.168.1.101 -u root
if(con != NULL&&
mysql_real_connect(con,dbip,dbuser,dbpasswd,dbname,nport,NULL,0))
{
//3、选择数据库相当于运行mysql>use samp_db
if(!mysql_select_db(con,dbname))
{
con->reconnect = 1; //3、用于设定字符集的,主要针对保存到数据库中的中文
query= "set names \'GBK\'";
rt=mysql_real_query(con,query,strlen(query));
if(rt)
{
printf("Error making query: %s!!!\n",mysql_error(con));
} //4、设定返回字符集。这是必需要设置的,不然返回的是其他的字符集,显示时全是乱码。
query= "SET CHARACTER_SET_RESULTS=\'UTF8\'";
rt=mysql_real_query(con,query,strlen(query));
if(rt)
{
printf("Error making query: %s!!!\n",mysql_error(con));
}
}
}
else
{
MessageBoxA(NULL,"连接数据库失败,请检查配置! ","",NULL);
return;
} //insert操作
chartimeBuff[32] = {0};
charbuff[256] = {0};
SYSTEMTIMEst;
GetLocalTime(&st);
sprintf(timeBuff,"%04d-%02d-%02d%02d:%02d:%02d",st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond);
sprintf(buff,"insert intostudentsvalues(NULL,\"%s\",\"%s\",%d,\"%s\",\"%s\",\"%s\");","牛小北","女",28,"135321432","长沙市",timeBuff);
rt= mysql_real_query(con,buff,strlen(buff));
if(rt)
{
CStringsError;
sError.Format(L"%s",mysql_error(con));
charbuff[128] = {0};
WideCharToMultiByte(CP_ACP,0,sError,-1,buff,127,NULL,FALSE);
MessageBox(L"inserterror.!" + sError,L"",NULL);
return;
} //select操作
sprintf(tmp,"select *from %s where id>260;",tablename);
rt= mysql_real_query(con,tmp,strlen(tmp));
if(rt)
{
MessageBoxA(NULL,"selecterror.!","",NULL);
return;
} //对结果集做处理
res= mysql_store_result(con);
CStringstr;
while(row = mysql_fetch_row(res))
{ for(t = 0;t< mysql_num_fields(res); t++)
{
wchar_tTmpBuf[128] = {0};
MultiByteToWideChar(CP_UTF8,0,row[t],-1,TmpBuf,127);
charbuff[127];
WideCharToMultiByte(CP_ACP,0,TmpBuf,-1,buff,127,NULL,FALSE);
str+= L""+CString(buff);
}
str+= L"\r\n";
}
//将结果集写到EDIT中
GetDlgItem(IDC_EDIT1)->SetWindowText(str); //释放结果集
mysql_free_result(res);
//关闭连接
mysql_close(con); return;
}

这是一个简单的结果界面。

MySQL API比較多,还须要学习很多其它。

这个文档的链接例如以下:

http://download.csdn.net/detail/cabmail/8852297

VC++通过API连接MySQL的更多相关文章

  1. C Mysql API连接Mysql

    最近都在查看MYsql C API文档,也遇到了很多问题,下面来简单的做一个总结. mysql多线程问题 mysql多线程处理不好,经常会发生coredump,见使用Mysql出core一文. 单线程 ...

  2. C API 连接MySQL及批量插入

    CMySQLMgr.h: #ifndef _CMYSQLMGR_H_ #define _CMYSQLMGR_H_ #include <iostream> #include "my ...

  3. VC++6.0连接MySQL数据库(MySQL API)

    一.MySQL的安装   Mysql的安装去官网下载就可以...最新的是5.7版本..二.VC6.0的设置(1)打开VC6.中选0 工具栏Tools菜单下的Options选项,在Directories ...

  4. C API 连接MYSQL

    #include <iostream> #include <mysql.h> #include <string> #include <assert.h> ...

  5. C++连接mysql的两种方式(ADO连接和mysql api连接)

    一.ADO连接mysql 1.安装mysql-5.5.20-win32.msi和mysql-connector-odbc-5.3.4-win32.msi(一般两个安装程序要匹配,否则可能连接不上)  ...

  6. VC++ ADO 连接 mysql

    通过自己摸索和网上帮助 了解了VC++ 用ADO 连接mysql数据库的方法:     使用的方法是利用ADO通过建立ODBC数据源来最终达到访问MySQL的目的.     1.安装mysql数据库服 ...

  7. MFC连接MySQL

    其实,以前弄过sql,mysql应该是顺理成章很简单的事情,但很无奈,傻傻地弄了很久,还请教了别人,别人告诉我的跟我在网上查到的都是一样的,但还是不行,归根接地就是“mysql-connector-o ...

  8. VC连接MySql

    VC连接MySql 一丶MySql 需要了解的知识 VC连接MySql 需要了解几个关键的API: MYSQL * stdcall mysql init (MYSQL *mysql):  初始化一个数 ...

  9. C++ API方式连接mysql数据库实现增删改查

    这里复制的 http://www.bitscn.com/pdb/mysql/201407/226252.html 一.环境配置 1,装好mysql,新建一个C++控制台工程(从最简单的弄起,这个会了, ...

随机推荐

  1. 2017年最全的30个Android面试题,你将如何回答?

    百度首页 登录 2017年最全的30个Android面试题,你将如何回答? 机翼技术 百家号 03-10 02:32 “三金四银”又是一年一度的跳槽季,相信有不少Android程序员开始摩拳擦掌蠢蠢欲 ...

  2. Heartbleed漏洞利用程序

    #!/usr/bin/python # Quick and dirty demonstration of CVE-2014-0160 by Jared Stafford (jspenguin@jspe ...

  3. javascript快速入门7--ECMAScript语法基础

    ECMAScript的基础概念 熟悉Java.C和Perl这些语言的开发者会发现ECMAScript的语法很容易掌握,因为它借用了这些语言的语法.Java和ECMAScript有一些关键语法特性相同, ...

  4. VR开发者必看:4大最为值得关注的内容平台【转】

            时间 2016-01-19 14:12:57 原文  http://www.sfw.cn/xinwen/478369.html 主题 虚拟现实 Oculus 对很多有意涉及VR行业的内 ...

  5. java的poi技术读取Excel[2003-2007,2010]

    这篇blog主要是讲述java中poi读取excel,而excel的版本包括:2003-2007和2010两个版本, 即excel的后缀名为:xls和xlsx. 读取excel和MySQL相关: ja ...

  6. 【监控】使用 Grafana、collectd 和 InfluxDB 打造现代监控系统

    参考资料:Grafana 是 Graphite 和 InfluxDB 仪表盘和图形编辑器:http://www.oschina.net/p/grafana 使用 Grafana.collectd 和 ...

  7. 转:JavaWeb学习总结(一) 写得相当不错

    这个系列写的相当不错,浅显易懂,图文并茂 http://www.cnblogs.com/xdp-gacl/tag/JavaWeb%E5%AD%A6%E4%B9%A0%E6%80%BB%E7%BB%93 ...

  8. docker集群——初识Swarm

    为Docker构建原生的集群管理工具的计划早在2014年初就开始了,当时作为一个通信协议项目,称为Beam.之后,它被实现为一种后台程序,使用Docker API来控制异构化的分布式系统.项目重新命名 ...

  9. zbar 解析 图片 二维码 条形码

    #!/usr/bin/env python # coding: u8 import os import zbar import Image import urllib import uuid def ...

  10. UNIX管道符

    在Unxi操作系统中,标准输入和标准输出是外壳程序中可以单独使用的两个独立流.但是有时候系统工程师需要让某些特定的输入源不起作用.当系统工程师在开发一些实用的脚本程序的过程中,经常需要用到.   一. ...