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 ...
随机推荐
- [LeetCode] Fraction to Recurring Decimal 哈希表
Given two integers representing the numerator and denominator of a fraction, return the fraction in ...
- Redis配置以及通过C#访问小试
首先安装一个Ubuntu14.04的虚拟机用来安装Redis.Ubuntu的Unity在虚拟机里面卡爆了,可以通过如下方法安装传统的Gnome界面: sudo aptitude install gno ...
- 模拟MessageBox
原文:<模拟MessageBox> Posted on 2014/01/07 ======================================================= ...
- Cwinux简介及用法简述
我在我的个人博客上发表了一篇文章 Cwinux简介及用法简述 http://apprentice89.com/cwinux_introduction_and_use/
- 没有Google的日子很难过...But you can try...
作为开发人员,经常会通过Google查询一些资料(别问我为什么不用百度,当你输入关键字,然后给你提示没有查询到结果,或者一页全是垃圾资料的时候你就知道了).但是,N个月前,Google不好使了,同时N ...
- bootstrap插件学习-bootstrap.tab.js
先看bootstrap-tab.js的结构 var Tab = function ( element ) {} //构造器 Tab.prototype ={} //构造器的原型 $.fn.tab = ...
- Java 随机数
本章先讲解Java随机数的几种产生方式,然后通过示例对其进行演示. 广义上讲,Java中的随机数的有三种产生方式:(01). 通过System.currentTimeMillis()来获取一个当前时间 ...
- iOS-文字自适应
1.自动改变Label的宽和高 - (void)createLabel1 { UILabel * label = [[UILabel alloc] initWithFrame:CGRectZero]; ...
- css优先级和层叠
css优先级和层叠 1.优先级 计算方法: a.行内样式 b.id选择器的数量 c.类,伪类和属性选择器的数量 d.标签选择器和伪元素选择 ...
- Velocity魔法堂系列三:模板与宿主环境通信
一.前言 Velocity作为历史悠久的模板引擎不单单可以替代JSP作为Java Web的服务端网页模板引擎,而且可以作为普通文本的模板引擎来增强服务端程序文本处理能力.而且Velocity被移植到不 ...