VC连接MySql

一丶MySql 需要了解的知识

VC连接MySql 需要了解几个关键的API:

MYSQL * stdcall mysql init (MYSQL *mysql):  初始化一个数据库.如果传NULL.则返回一个数据库对象

mysql_real connect(); 与MySql 数据库创建连接

mySql_close() 关闭连接释放对象.如果自动分配的.也就是init传的NULL. 则自动释放.

mysql_select_db 选择一个数据库. 相当于sql语句 use database 数据库名

mysql_ query  sql查询.

mysql_store_resul 如果调用来的sql查询.那么必须调用它.保存查询结果.并且返回这个数据库的结果集.

mysql_set_ character  等价于 set names 设置编码格式.

mysql _freeresult 释放结果集使用的内存.

二丶VS2015 配置库目录以及包含目录.使用MySql

1.要包含mysql的include目录.以及lib下的opt目录.

2.包含头文件 mysql.h 以及使用库 #pragma comment(lib,"libmysql.lib")

首先我们VS2015 打开项目属性.点击我们的VC++目录设置我们的包含目录以及库目录.

mysql是你安装的目录.include以及lib都在他的目录下. 你可以使用Everything 搜索一下Mysql 看看你的mysql放哪里了.

例如:

C:Program Files (x86)MySQLMySQL Server 5.0include  我的是在C盘.

c:xxxxMySQLmySql Server 5.0libopt;                            库目录

下图为设置.

包含我们的头文件

#include "mysql.h"

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

如果编译出错.可能会显示socket的字样.那是因为mysql用了socket

我们还需要加载一个头文件.

#include

三丶数据库连接代码示例

我们可以下载一个MySql 手册. 可以查看 API 跟库.

我们常见的属性也列举出来了.

1.初始化跟连接数据库的代码

//1.初始化MySql

MYSQL *pMySql;

pMySql= mysql_init(NULL); //因为我们不是new的自动创创建

if (NULL ==pMySql)

{

AfxMessageBox(TEXT("数据库连接失败"));return;

}//2.与我们的数据库创建连接

/*1.我们的MySql指针

2.我们数据库的IP地址

3.数据库用户名

4.数据库的用户密码.

5.db 为数据库名称

6.端口

7.linux下的.给NULL

8.协议

使用Show processlist; 可以查看数据库当前连接*/

if (!mysql_real_connect(pMySql, LOCAL_HOST, "root", "123456", NULL, 3306, NULL, NULL))

{

AfxMessageBox(TEXT("数据库连接失败"));return;

}

调用mysql_real_connect 的时候.给定属性即可.

我们可以看下我们当前的连接 使用 show processlist;

可以看到.ID 为6的使我们的连接. 只不过数据库名字我们没有选中.我们可以设置选中

2.设置我们的数据库.

//3.设置我们的数据库

/*1.我们的sql句柄

2.我们要选择的数据库的名称 use daatabse 数据库名*/mysql_select_db(pMySql,"newtest");

这样我们就会使用newtest这个数据库了.

三丶数据库的查询.获取结果集.提取结果集

这里总共分三步.

1.我们使用sql 语句查询结果.

2.查询完毕之后.我们还需要使用api.来接受这个结果.

3.结果里面很多东西.所以我们还要使用API 进行进一步的提取.

//4.查询.返回结果集. 提取结果集

/*1.sql 句柄

2.查询语句*/

if (!mysql_query(pMySql, "select *from stu"))

{

AfxMessageBox(TEXT("数据库查询失败"));return;

}//获取结果集

MYSQL_RES pres; //结果集结构体

pres =mysql_store_result(pMySql);if (NULL ==pres)

{

AfxMessageBox(TEXT("获取结果集失败"));return;

}//提取结构

MYSQL_FIELD *fd;//使用API获取,循环获取.不断获取.直到为0 遍历字段名

for (size_t i = 0; fd = mysql_fetch_field(pres); i++)

{

printf("%s", fd->name);//打印出字段名

}//遍历字段中的数据.//结果集中有一个 rowcount 表示多少行数据.所以遍历

MYSQL_ROW row;

CString str;while (row =mysql_fetch_row(pres));

{//输出我们的字段

str = "";

str.Format(TEXT("字段1 %s 字段2 %s 字段3 %s"), row[0], row[1], row[2]);

AfxMessageBox(str);

}

最后我们要关闭结果集.以及数据库连接

mysql_close();

mysql_free_result();

如果我们查询乱码.那么还需要设置我们的结果集.

mysql_set_character_set(数据库句柄,"gbk");

4.创建数据库

mysql_create_db():

具体函数可以查询参考手册

mysql需要vc_VC连接MySql相关推荐

  1. 使用php连接mysql数据库_PHP使用mysql与mysqli连接Mysql数据库用法示例

    本文实例讲述了PHP使用mysql与mysqli连接Mysql数据库的方法.分享给大家供大家参考,具体如下: 代码很简单直接上了 /** * @Author: HTL * @Description: ...

  2. django本地安装mysql_Ununtu 15.04 安装MySql(Django连接Mysql)

    本文介绍Ubuntu 15.04下安装MySQL ubuntu 15.04安装mysql django项目连接mysql 一.安装数据库 1.sudo apt-get install mysql-se ...

  3. c语言 连接 mysql,C语言连接mysql -select

    C语言实现查询mysql数据库的行数,列的属性,以及每条记录. /* select.c */ #include #include #include #include "/usr/includ ...

  4. mysql submission_date_UiPath如何连接MySQL

    UiPath如何连接MySQL 首次登陆,修改密码,首先用 flushprivileges; 再用一下3种方法中的一种 update mysql.user setauthentication_stri ...

  5. 引入mysql+命名空间_C#连接MySQL操作详细教程

    C#如何连接MySQL进行操作,供大家参考,具体内容如下 1.引入MySql.Data.dll 例如小编是vs2017,创建工程之后,添加应用,选择工程,点击下面的引用,右击打开,选择添加引用 2.如 ...

  6. asp连接不到我mysql里_ASP连接MYSQL问题点解决

    错误编号:1251 问题分析: 如果你升级 MySQL 到 4.1 以上版本后遇到以上问题,请先确定你的 MySQL Client 是 4.1 或者更高版本(Windows 下有这个问题就可以直接跳到 ...

  7. c# 连接mysql数据库_C#连接Mysql数据库

    一. ADO.NET访问方式 程序集:Mysql.Data.dll 导入包:using MySql.Data.MySqlClient; 说明:这是MySql为 ADO.NET推出的 访问 Mysql数 ...

  8. saiku添加mysql数据源_Saiku连接mysql数据库(二)

    Saiku连接Mysql数据库展示数据 前提:Saiku已安装好,mysql已安装好 1.添加Saiku的数据库驱动: mysql-connect-java-5.1.17.jar 下载相应的数据库驱动 ...

  9. qt 连接mysql数据库_QT连接MYSQL数据库教程

    QT连接MYSQL数据库教程 最近购买了阿里云Linux服务器,处于自学需要安装了MYSQL5.7. 准备用QT开发个小工具,在使用QT提供的标准类连接MYSQL库的时候一直爆出无法加载MYSQL驱动 ...

最新文章

  1. TableStore: 海量结构化数据分层存储方案
  2. Mantis使用说明
  3. php swoole 项目实战,Laravel 中使用 swoole 项目实战开发案例一 (建立 swoole 和前端通信)...
  4. Android画板控件,可以写字,签名,画画并生成图片
  5. Java基础学习总结(65)——Java中的String,StringBuilder和StringBuffer比较
  6. getconnection java_在MyEclipse用java写的一个GetConnection1.java,用于连接MySQL,却总是出错。(没有财富值了,见谅!)...
  7. 在CrossOver中设置代理实现与特殊网段的网络连接
  8. Android USBCamera投屏 - 利用UVC协议将手机上的画面有线投屏到Android车机的屏幕上
  9. 松下PLC远程编程调试流程
  10. Excel学习笔记一关于色彩
  11. 免费注册的域名.tk
  12. 【折腾】GitHub Actions 反代 RSSHub + 多实例轮询
  13. 最强蜗牛服务器维护祷告bug,最强蜗牛地缝bug是什么 最强蜗牛地缝事件漏洞说明...
  14. ft232h引脚_K9K8G08U0B-PIB0--斗门--镁光MICRON内存收购
  15. C++的学习路线以及未来就业趋势
  16. php汉字转为拼音方法一
  17. “企业上云”计划出炉,三年内河北万家企业要上云!|中机智库
  18. 神州数码无线设备常用配置
  19. 2022年R1快开门式压力容器操作题库及模拟考试
  20. SEO优化之生成静态网页

热门文章

  1. 搭建环境_maven: 搭建工程: ssm整合: 搭建测试:
  2. 原型继承与属性拷贝的混合应用
  3. Asp.Net统一前后端提示信息方案
  4. 原理:什么是Quadtrees?(转)
  5. xcode 学习笔记2:动态添加view
  6. 浅析:setsockopt()改善程序的健壮性【转】
  7. 一个html的文件当中读取另一个html文件
  8. 浏览器中的标签切换事件
  9. 编译程序加不加 -lpthread 的区别【转】
  10. Bmob图片上传遇到的坑