mysql & vs2013
一 mysql 版本介绍
在mysql的官网http://dev.mysql.com/上,mysql 大致分为两个版本,即免费的社区版(community)和 付费的商业版(commercial)。其中商业版又可以细分,详细看官网介绍http://www.mysql.com/products/
community版下载地址:http://dev.mysql.com/downloads/mysql/
目前出到5.7。5.7和5.6如果下载都是整套的下载,里面包括了以下两个工具及mysql utilities。我下的是5.5,里面只有server。
下载的时候有msi和zip的下载,如果是windows系统就选择能够直接安装的msi啦。
格外注意的是,里面有32位和64位的版本。选择则版本其实不是看你的系统是多少位的,而是看你之后建立的程序是多少位的。比如 如果要和VS中著名的win 32程序联合编程的话,就选择32位的版本。
在community 和commercial 版本中又有很多其他的工具来辅助mysql应用,我直说我接触到的两个工具。
一个是 mysql for visual studio ,这个是辅助VS编程的,可以在VS里可视化的显示数据库和表。
下载地址:http://dev.mysql.com/downloads/windows/visualstudio/1.2.html
在vs2013中的设置如下(我也不明白是mysql for VS起的作用,还是vs2013中本来就有连接的功能)
还有一个是mysql workbench ,这个是可视化的mysql工具,须知mysql server和Microsoft SQL server 不一样,前者是命令行的形式。有了workbench,事情就好办多了。但是使用这个建立连接的时候要先下载好 mysql server,不然连接不上服务器,还建立什么数据库呢。
下载地址:http://dev.mysql.com/downloads/workbench/
二,mysql 与 vs2013的连接配置
和所有外加库一样,要想在vs中使用mysql无非是配置以下几个东西。
打开vs项目的属性,找到VC++目录选项卡:
1 在附加目录中编辑mysql include文件夹安装的路径 ,例如“C:\program files\..\..\include”
2 在库牡蛎中编辑 lib文件的路径。
找到 链接器-->输入-->附加依赖项里增加:libmysql.lib
在mysql安装文件中找到 libmysql.dll文件,放到vs项目的debug(release)文件夹内,看你用的是那种调试方式了。
如果这些都做完了还有问题,试试看在系统环境变量path中有没有mysql bin文件夹的路径,没有的话就加上去。
三,mysql 与 VS2013联合编程
首先要指出的官方的手册:http://dev.mysql.com/doc/
下面给出一个可以运行的对数据库进行读写的程序并附上结果
(里面涉及到数据库元素属性,并且是默认mysql中已有数据库表的情况,所以部分涉及mysql_query的语句看个人的数据库建立情况而定)
- #include<Windows.h>
- #include<string>
- #include<iostream>
- #include<mysql.h>
- #include<stdio.h>
- #include<io.h>
- int main()
- {
- //connectionparams
- char *host = "localhost";
- char *user = "root";
- char *pass = "***";//你的mysql服务器密码
- char *db = "***"; //使用的database数据库
- unsigned int port = ; //server port
- MYSQL *sock;
- MYSQL_RES *res;
- MYSQL_FIELD * fd;
- MYSQL_ROW row;
- char szSqlText[] = "";
- int i;
- int tcreate = ;
- sock = mysql_init();// return An initialized MYSQL* handle or null when there is no enough memory
- if (sock && mysql_real_connect(sock, host, user, pass, db, , NULL, ))
- {
- std::cout << "connect mysql succeed!" << std::endl;
- mysql_set_character_set(sock,"utf8");
- // mysql_query(sock, "set names gb2312");
- /* character-set-server/default-character-set:服务器字符集,默认情况下所采用的。
- character-set-database:数据库字符集。
- character-set-table:数据库表字符集。
- 优先级依次增加。所以一般情况下只需要设置character-set-server,
- 而在创建数据库和表时不特别指定字符集,这样统一采用character-set-server字符集。*/
- //mysql_query(sock, "SET NAMES GBK"); //设置编码格式,否则在cmd下无法显示中文
- //connectioncharacter set
- //waitfor possibility to check system/mysql mysqlets
- if (tcreate)
- {
- sprintf_s(szSqlText, , "create table id (ID varchar(10) not null primary key,cenroid float,width int(11)"); //构造SQL语句 新建一张表
- std::cout << "Create table id!" << std::endl;
- getchar();
- tcreate = ;
- if (mysql_query(sock, szSqlText))//执行Dsql语句,并判断是否出错
- {
- std::cout << "can't create table,maybe the data property is wrong : " << mysql_error(sock) << std::endl;
- // tcreate = 0;
- mysql_close(sock);
- return FALSE;
- }
- }
- sprintf_s(szSqlText, ,//向mytable这个表插入数据 注意格式
- "insert into id1 values('sL','69','60')");
- std::cout << "Insert data to table!" << std::endl;
- getchar();
- if (mysql_query(sock, szSqlText))
- {
- std::cout << "Can't insert data to table" << mysql_error(sock) << std::endl;
- getchar();
- mysql_close(sock);
- return FALSE;
- }
- sprintf_s(szSqlText, , "select* from id1");
- std::cout << "select* from id1!" << std::endl;
- getchar();
- if (mysql_query(sock, szSqlText))//进行数据检索并检查有无错误
- {
- mysql_close(sock);
- return FALSE;
- }
- else
- {
- std::cout << "mysql_store_result!" << std::endl;
- res = mysql_store_result(sock);//取得查询结果,保存查询到的数据到res
- i = (int)mysql_num_rows(res);//取得有效记录数
- std::cout << "Query: " << szSqlText << "\n" << i << " records found:" << std::endl;
- for (i = ; fd = mysql_fetch_field(res); i++)//获取列名
- std::cout << fd->name << "\t";
- std::cout << std::endl;//输出各字段名
- while (row = mysql_fetch_row(res))//获取具体的数据,依次读取各条记录
- std::cout << row[] << "\t" << row[] << "\t" << row[] << "\t" << std::endl;
- mysql_free_result(res); //释放结果资源
- getchar();
- }
- }
- else//连接数据库出错
- {
- std::cout << "cannot connect to the sock sever " << mysql_error(sock) << std::endl;
- getchar();
- mysql_close(sock);
- return FALSE;
- }
- mysql_close(sock);//断开连接
- // system("pause");
- return TRUE;
- }
有一点没对齐。
ps:此文为作者个人理解摘抄,欢迎指正
mysql & vs2013的更多相关文章
- VS2013使用EF6与mysql数据库
您的项目引用了最新实体框架:但是,找不到数据链接所需的与版本兼容的实体框架数据库 EF6使用Mysql的技巧 在vs2013中使用mysql连接entityFramework经常会遇到这个问题 ...
- 在windows下使用vs2013编译和调试mysql源代码
1. 准备工作 1)OS:win10 + VS2013 2)mysql 源码(windows版):mysql-5.6.25.zip 3)perl tool:ActivePerl-5.16.3.1604 ...
- VS2013与MySql建立连接;您的项目引用了最新实体框架;但是,找不到数据链接所需的与版本兼容的实体框架数据库 EF6使用Mysql的技巧
因为之前都是看别人的项目,而没有自己从头到尾建立一个项目,所以这次尝试搭建时就出现了问题,主要是ASP.Net MVC项目中VS2013和MySql的连接. 第一个问题: 数据库表已建好,相应的数据库 ...
- VS2013服务器资源管理器添加Mysql数据源
如何为VS2013服务器资源管理器添加Mysql数据源,如图: 接下来就看下如何添加 1.需要下载安装Mysql for Visual Studio 1.1.1 下载位置:http://downloa ...
- c++连接mysql数据库(使用mysql api方式,环境VS2013+MYSQL5.6)
转载请注明出处,原文地址http://www.cnblogs.com/zenki-kong/p/4382657.html 刚开始写博客,博主还只是个大三汪,学艺不精,如有错误还请前辈指出(>^ω ...
- VS2013 Qt5 Mysql中文编码问题
Qt开始默认是utf-8,而VS2013默认程序编码为gb2312: 这样就会发现使用中文的时候乱码. 一般有二种解决方案: 1.在使用中文的时候,使用QTextCodec QTextCodec *g ...
- c/c++使用VS2013连接MySQL与ubuntu下c链接mysql
vs连接数据库事实上就是将mysql数据库.h头文件接口.lib链接文件和dll运行文件增加到项目中.以下是配置怎样增加. 转于http://www.cnblogs.com/justinzhang/a ...
- VS2013使用EF与mysql数据库.
一个VS2013的mvc+EF+mysql的项目,需要连接Mysql数据库 一,下载一个mysql-for-visualstudio-1.2.3.msi,在自己的电脑上安装,这个是解决在创建实体模型( ...
- Vs2013 使用EF6 连接mysql数据库
最近在使用MySQL数据库,在使用EF框架连接MySQL数据库时发现了一个问题,使用DB First创建实体对象的时候会出现如下图的错误:您的项目引用了最新版实体框架….. (如下图)或者会出现新建实 ...
随机推荐
- 20155333 2016-2017-2 《Java程序设计》第三周学习总结
20155333 2016-2017-2 <Java程序设计>第三周学习总结 教材学习内容总结 第四章 类定义时使用class关键词,名称使用Clothes,建立实例要使用new关键词. ...
- 2017-2018-1 20155339 第十一周加分项Linux下Mypwd的实现
2017-2018-1 20155339 第十一周加分项Linux下Mypwd的实现 学习pwd命令 通过man命令查看pwd命令的功能 由图可知pwd命令的用途是显示工作目录的路径名称.pwd 命令 ...
- tkinter菜单图标,工具栏
所用的图片: import tkinter as tk from tkinter import messagebox, filedialog, simpledialog, colorchooser f ...
- 【洛谷P2245】星际导航
题面 题解 \(kruskal\)重构树板子题??(大雾 因为重构树上两点之间的\(LCA\)的权值就是原图上最小生成树上的瓶颈. 所以建个重构树,跑\(LCA\)即可. 代码 #include< ...
- 【洛谷P4556】 雨天的尾巴
题面 题解 线段树合并 我们看到这道题目首先可以想到树上差分,然后\(dfs\)合并 发现题目让我们求的东西很好用线段树维护 于是可以想到线段树合并 全世界只有我写指针版动态开点线段树(大雾 如果你要 ...
- VS2010 不显示 最近使用的项目 解决办法
昨天重装了VS2010,然后开了项目看了下今天早上再打开发现起始页近使用项目列表是空白的,每次打开项目都要去到指定目录去找解决方案才能打开,感觉很麻烦,在网上找了下解决方案,解决步骤下:菜单 —— 运 ...
- 一个经典的PHP加密解密算法authcode
项目中有时我们需要使用PHP将特定的信息进行加密,也就是通过加密算法生成一个加密字符串,这个加密后的字符串可以通过解密算法进行解密,便于程序对解密后的信息进行处理.最常见的应用在用户登录以及一些API ...
- C#特性的简单介绍
特性应该我们大多接触过,比喻经常使用的[Obsolete],[Serializable]等下面我就主要介绍一个特性的一些用法 摘自MSDN定义:用以将元数据或声明信息与代码(程序集.类型.方法.属性等 ...
- Python之requests的安装
在 windows 系统下,只需要输入命令 pip install requests ,即可安装. 在 linux 系统下,只需要输入命令 sudo pip install requests ,即可安 ...
- hdfs向hbase上传数据报错分析
通过hbse的import工具向hbase导入文件时出现出错误: hbase org.apache.hadoop.hbase.mapreduce.Driver import hbase_rgrid_k ...