vc6.0连接mysql数据库
一、MySQL的安装
Mysql的安装去官网下载就可以。。。最新的是5.7版本。。
二、VC6.0的设置
(1)打开VC6.中选0 工具栏Tools菜单下的Options选项,在Directories的标签页中右边的“Show directories for:”下拉列表中“Includefiles”,然后在中间列表框中添加你本地安装MySQL的include目录路径。如图:

(2)在上面说到的“Show directories for:”下拉列表中选中“Library files”,然后添加你本地安装MySQL的Lib目录路径。如图:

**这里要说明一下:细心的人会发现我的这个目录和上一个图中的不一样,这是因为这个错误:libmysql.lib : fatal error LNK1113: invalid machine 无效的服务器
这是因为vc开发的是32位的程序,而mysql数据库是64位导致的,你用32位的程序去操作64位的数据库肯定会出错,我在下一篇博文中将详细说明怎么解决。
(3)在“Project settings->Link:Object/library modules”里面添加“libmysql.lib”。

(5)建议将“libmySQL.lib、libmySQL.dll”拷到你所建的工程的目录下。
这两个文件在D:\Mysql\lib目录下。
三、编程实现
1. 一个简单的小程序,看看是否能连接成功。。。
#include <stdio.h>
#include <windows.h>
#include <mysql.h> int main()
{ MYSQL mysql;
mysql_init(&mysql); //初始化mysql结构 if(!mysql_real_connect(&mysql,"localhost","myuser","123456","student_db",3306,NULL,0))
printf("\n连接数据库时发生错误!\n");
else
printf("\n连接数据库成功!\n"); mysql_close(&mysql); //释放数据库 return 0;
}
mysql_real_connect(&mysql,"localhost","myuser","123456","student_db",3306,NULL,0)//myuser是我的用户名,“123456”是密码,“student_db”是数据库,3306是端口号
2.实现查询小程序
// test.cpp : Defines the entry point for the console application.
//
#include <stdio.h>
#include <windows.h>
#include "StdAfx.h" #include <winsock.h>
#include <iostream>
#include <string>
#include <mysql.h>
using namespace std;
//不需要单步调试的就注释掉
//#define STEPBYSTEP void pause(){ #ifdef STEPBYSTEP
system("pause");
#endif
}
void writeToFile(const char *s)
{ FILE *fp=fopen("info.txt","rw");
fprintf(fp,s);
fclose(fp); }
/* int main() { MYSQL mysql;
mysql_init(&mysql); //初始化mysql结构 if(!mysql_real_connect(&mysql,"localhost","myuser","123456","student_db",3306,NULL,0))
printf("\n连接数据库时发生错误!\n");
else
printf("\n连接数据库成功!\n"); mysql_close(&mysql); //释放数据库 return 0;
}*/
int main(int argc, char* argv[]){ cout<<"start...."<<endl;
pause();
MYSQL mysql;
if(0==mysql_library_init(0,NULL,NULL))
{
cout<<"mysql_library_init succeed"<<endl; }else{
cout<<"mysql_library_init failed"<<endl;
return -1;
}
pause();
if(NULL!=mysql_init(&mysql))
{ cout<<"mysql_init succeed"<<endl;
}else{
cout<<"mysql_init failed"<<endl;
return -1;
}
pause();
if(0==mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"gb2312"))
{ cout<<"mysql_option succeed"<<endl;
}else{
cout<<"mysql_option failed"<<endl;
return -1;
}
pause(); if(NULL!=mysql_real_connect(&mysql,"localhost","myuser","123456","student_db",3306,NULL,0))
{ cout<<"mysql_real_connect succeed"<<endl;
}else{
cout<<"mysql_real_connect failed"<<endl;
return -1;
}
pause();
string sql; sql="select * from sgroup";
MYSQL_RES *result=NULL;
if(0==mysql_query(&mysql,sql.c_str()))
{ cout<<"mysql_query select succeed"<<endl;
result=mysql_store_result(&mysql);
int rowcount=mysql_num_rows(result);
cout<<"row count:"<<rowcount<<endl;
unsigned int fieldcount=mysql_num_fields(result);
MYSQL_FIELD *field=NULL;
for(unsigned int i=0;i<fieldcount;i++)
{ field=mysql_fetch_field_direct(result,i);
cout<<field->name<<"\t\t";
}
cout<<endl;
MYSQL_ROW row=NULL;
row=mysql_fetch_row(result);
while(NULL!=row)
{ for(int i=0;i<fieldcount;i++){ cout<<row[i]<<"\t\t"; }
cout<<endl;
row=mysql_fetch_row(result); }
}else{ cout<<"mysql_query select data failed"<<endl;
mysql_close(&mysql);
return -1;
}
pause();
/*sql="drop table user_info";
if(0==mysql_query(&mysql,sql.c_str()))
{ cout<<"mysql_query drop table succeed"<<endl;
}else{
cout<<"mysql_query drop table failed"<<endl;
mysql_close(&mysql);
return -1; } */
mysql_free_result(result);
mysql_close(&mysql);
mysql_server_end(); system("pause");
return 0;
}
运行结果:

至此连接成功。。哈哈。。
vc6.0连接mysql数据库的更多相关文章
- VB6.0连接MySQL数据库
VB6.0连接MySQL数据库
- django2.0+连接mysql数据库迁移时候报错
django2.0+连接mysql数据库迁移时候报错 情况一 错误信息 django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 ...
- VC++6.0连接MySQL数据库(MySQL API)
一.MySQL的安装 Mysql的安装去官网下载就可以...最新的是5.7版本..二.VC6.0的设置(1)打开VC6.中选0 工具栏Tools菜单下的Options选项,在Directories ...
- vc6.0运用mysql数据库中的编码所导致的乱码问题(接收和输出的编码必须要一致)
[编译中遇见的问题] ①在用vc 6.0去调用MySQL中的数据时,出现中文乱码 ②不明白mysql中的码制 [开始解决问题] ①打开mysql控制台 ...
- EntityFramework 6.0< Code First > 连接 Mysql数据库(转)
http://blog.csdn.net/kmguo/article/details/19650299 网上有很多关于用EntityFrame来连接Mysql数据库的教程,可是很多并不靠谱,转载的太多 ...
- EntityFramework 6.0< Code First > 连接 Mysql数据库
网上有很多关于用EntityFrame来连接Mysql数据库的教程,可是很多并不靠谱,转载的太多了.找了很久,总算是配置好了,现在分享一下. 一,安装: 1.开发环境: VS2013与EF6 ...
- 转载:EntityFramework 6.0< Code First > 连接 Mysql数据库
转载自:http://blog.csdn.net/kmguo/article/details/19650299 网上有很多关于用EntityFrame来连接Mysql数据库的教程,可是很多并不靠谱,转 ...
- Eclipse中利用JSP把mysql-connector-java-8.0.13.jar放到WebContent\WEB-INF\lib中连接MySQL数据库时Connection conn = DriverManager.getConnection(url,username,password)报错的解决办法
开发环境: 1.系统:windows 7/8/10均可 2.jdk:1.8.0_144 3.服务器:apache-tomcat-9.0.8 4.IDE:eclipse+jsp 0.网页代码如下: &l ...
- 用MyEclipse10.0远程连接Mysql数据库服务器
说明:本文档所有的操作均在满足以下条件的情况下操作, A.远程Linux服务器已经安装好MySQL数据库 B.本地电脑可以ping通远程服务器 C.已经成功安装了Myeclipse 一.下载mysql ...
随机推荐
- Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问
本篇内容还是建立在上一篇Java Web学习系列——Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Jar包 这 ...
- actionbar部分设置:colorPrimary colorPrimaryDark colorAccent 下部阴影
去除actionbar下阴影: <item name="android:windowContentOverlay">@null</item>
- DDD:再谈:实体能否处于非法状态?
背景 实体能否处于非法状态吗?如果实体只承担其作为实体的职责,我不认为实体可以处于非法状态,如果您将实体在不同的分层之间传递,如:UI->Application->Domain-Data, ...
- MongoDB入门一:安装与配置
引言 ——妈妈说名字太长排在后面或在标题堆儿中容易被大家发现. MongoDB的名字来源与单词humongous(极大的,巨大无比的)有关,它是一个可扩展.高性能.开源的NoSQL数据库. 之所以在g ...
- Android学习笔记之ConnectivityManager+NetWorkInfo
PS:眼看就要开学了,该收收心了. 学习内容: 1.ConnecivityManager 2.NetWorkInfo ConnectivityManger:网络连接管理者,用于管理Android设 ...
- HT图形组件设计之道(一)
HT for Web简称HT提供了涵盖通用组件.2D拓扑图形组件以及3D引擎的一站式解决方案,正如Hightopo官网所表达的我们希望提供:Everything you need to create ...
- Vim杂记:Sublime的配色方案
一.前言 爱美之心人皆有之,sublime的配色实在好看,于是希望Vim也能这样. 二.配置 1.下载monokai(https://github.com/sickill/vim-monokai),然 ...
- idea上实现github代码同步
1.先将github远程仓库clone到本地 2.将本地仓库中的项目导入到idea中 3.如果你的项目代码不是放在仓库的根目录下,idea会识别到你的项目是在git仓库目录下,必须点击add root ...
- android:inputType参数类型说明
android:inputType参数类型说明 android:inputType="none"--输入普通字符 android:inputType="text" ...
- C#设计模式——状态模式(State Pattern)
一.概述在面向对象软件设计时,常常碰到某一个对象由于状态的不同而有不同的行为.如果用if else或是switch case等方法处理,对象操作及对象的状态就耦合在一起,碰到复杂的情况就会造成代码结构 ...