• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > MFC中连接mysql的API如何配置和使用。求教。300分求。

MFC中连接mysql的API如何配置和使用。求教。300分求。

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了mfc api,mfc api中文,mfc连接mysql数据库,mfc如何连接mysql,mfc odbc连接mysql等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: MFC中连接mysql的API如何配置和使用。求教。300分求。
描述:

MFC中连接mysql的API

请大神讲下详细的。VS库怎么配置mysql.  以及MYSQL的api连接,以及操作增删查改。
VS好像要添加mysql的文件,才可以。请留下详细的。以及开始如何初始化连接,连接好了,如何对数据库增删查改。请大神留下详细的,网上复制的就不要了,谢谢。说不明白的也不要留言,300分,我发3条,你每个里面复制黏贴下。我把分都给你。


解决方案1:

 MFC中连接mysql的API如何配置和使用。求教。300分求。
安装目录下找到这2文件夹,一个是放头文件的,一个是dll和lib。把这2文件夹拷贝到你的程序目录下。
 MFC中连接mysql的API如何配置和使用。求教。300分求。
然后在工程里设置,c/c++常规配置头文件目录。连接器配置lib的目录,
配置好目录需要添加lib。
 MFC中连接mysql的API如何配置和使用。求教。300分求。
然后就可以引用头文件了
这是我原来的类,直接复制给你。里面只有部分是必要的,其他的虽然没用,但是可以当例子。
.h文件内容
#ifndef _MYSQL_CONTROL_
#define _MYSQL_CONTROL_
#include <afx.h>
#include <WinSock2.h>
#include "mysql.h"
#include "resource.h" // 主符号
#include <vector>
#include <map>
#ifndef __AFXWIN_H__
#error "在包含此文件之前包含“stdafx.h”以生成 PCH 文件"
#endif
#pragma comment(lib,"wsock32.lib")
#pragma comment(lib,"libmysql.lib")
using namespace std;
class MySql_Control
{
private:
MYSQL* mysql; //必要
public:
MYSQL_RES *m_result; //必要
MYSQL_ROW m_row;//必要
public:
//void(*SetPata)();
//MySql_Control(void(*SetPata)());
MySql_Control();
MySql_Control(char* ip, char* port, char* Db, char* user, char* passwd);//必要
~MySql_Control();
public:
bool ConnMysql(char* host, char* port, char* Db, char* user, char* passwd);//必要
void CloseMysqlConn();//必要
bool ExcuteSql(char* strSQL);//必要
MYSQL_RES* QuerySql(char* strSQL, MYSQL_RES* pMySql_Res);//必要
int DeleteData(char* SQL, char* Msg);
int UpdateData(char* SQL, char* Msg);
int InsertData(char* SQL, char* Msg);
CString SelectData(char* SQL, char* Msg, char RowSpace = 0x06, char ColumnSpace = 0x05);
CString SelectData(char* SQL, char* Msg, vector<CString*>* Data, char ColumnSpace = 0x05);
int Query(char* SQL,CStringArray * Results);
};
#endif
这是.cpp文件
#include "stdafx.h"
#include "MySql_Control.h"
#include <iostream>
//using namespace std;
#pragma comment(lib,"ws2_32.lib")
MySql_Control::MySql_Control()
{
//ConnMysql(MysqlConnectInfo::cMIP, MysqlConnectInfo::cMPort, MysqlConnectInfo::cMDB, MysqlConnectInfo::cMUser, MysqlConnectInfo::cMPwd);
}
MySql_Control::MySql_Control(char* host, char* port, char* Db, char* user, char* passwd)
{
ConnMysql(host, port, Db, user, passwd);
}
MySql_Control::~MySql_Control()
{}
bool MySql_Control::ConnMysql(char* host, char* port, char* Db, char* user, char* passwd)
{
//if (mysql_init(mysql) == NULL)
//{
// char* Msg = "inital mysql handle error!";
// return false;
//}
mysql = mysql_init(NULL);
if (mysql_real_connect(mysql, host, user, passwd, Db, atoi(port), NULL, CLIENT_MULTI_RESULTS) == NULL)
{
char* Msg = "Failed to connect to database:Error!";
return false;
}
if (mysql_set_character_set(mysql, "GBK") != 0)
{
char* Msg = "mysql_set_charater_set_Error!";
return false;
}
return true;
}
bool MySql_Control::ExcuteSql(char* strSQL)
{
bool bResult = false;
if (mysql_query(mysql, strSQL) != 0)
{
bResult = false;
return bResult;
}
return true;
//m_result = mysql_store_result(mysql);
//if (m_result == NULL)
//{
// bResult =false;
//}
//return bResult;
}
MYSQL_RES* MySql_Control::QuerySql(char* strSQL,MYSQL_RES* pMySql_Res)
{
if (pMySql_Res != NULL)
{
mysql_free_result(pMySql_Res);
}
if (mysql_query(mysql, strSQL) != 0)
{
return NULL;
}
pMySql_Res = mysql_store_result(mysql);
return pMySql_Res;
}
CString MySql_Control::SelectData(char* SQL, char* Msg, char RowSpace, char ColumnSpace)
{
MYSQL_ROW m_row;
MYSQL_RES *m_res;
char sql[2048];
sprintf_s(sql, SQL);
int rnum = 0;
char rg = RowSpace; //行隔开
char cg = ColumnSpace; //字段隔开
if (mysql_query(mysql, sql) != 0)
{
Msg = "select ps_info_Error!";
return _T("");
}
m_res = mysql_store_result(mysql);
if (m_res == NULL)
{
Msg = "select username Error!";
return _T("");
}
CString str =_T("");
while (m_row = mysql_fetch_row(m_res))//mysql_fetch_row
{
int nCols = mysql_num_fields(m_res);
for (int i = 0; i < nCols; i++)
{
str += m_row[i];
str += cg;
}
str += rg;
rnum++;
}
mysql_free_result(m_res);
return str;
}
CString MySql_Control::SelectData(char* SQL, char* Msg, vector<CString*>* Data, char ColumnSpace)
{
MYSQL_ROW m_row;
MYSQL_RES *m_res;
MYSQL_FIELD *fd;
//map da;
char sql[2048];
sprintf_s(sql, SQL);
int rnum = 0;
char rg = 0x06; //行隔开
char cg = { 0x05 }; //字段隔开
if (mysql_query(mysql, sql) != 0)
{
Msg = "select ps_info_Error!";
return _T("");
}
m_res = mysql_store_result(mysql);
if (m_res == NULL)
{
Msg = "select username Error!";
return _T("");
}
vector< CString >strField;
vector<CString*> strData;
CString str;
while (m_row = mysql_fetch_row(m_res))//重复读取行,把数据放入列表中,直到row为NULL 
{
for (int i&

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • MFC实现COM通信用API的方式在调用这个StartMonitoring是报错了
  • MFC用API连接Mysql
  • MFC中连接mysql的API如何配置和使用。求教。300分求。
  • MFC中连接mysql的API如何配置和使用。求教。300分求。

相关文章

  • 2017-06-04 vc通过ado访问64位oracle11g数据库的问题
  • 2017-06-05 关于互斥CMutex,100分相送
  • 2017-06-05 进程间通讯,还是进程内通讯?
  • 2017-06-04 简单问题,求救,200高分相送!
  • 2017-06-05 关于office的一个问题
  • 2017-06-04 exe形式的com组件在net下可以调用吗?如何调用?
  • 2017-06-04 COM组件移动目录后还能正常工作吗
  • 2017-06-05 求助:CreateControl函数的pPersist参数
  • 2017-06-05 能不能在动态库中创建线程?在线等。。。
  • 2017-06-05 如何在VC8中使用DEF文件导出class

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • tapi30开发
    • 我在基于对话框的例子中加了一个acxtivex控件(realplay在线等待
    • c++中通用问题,在标准STL中是否引进了线程保护,如果没有,应如何解决
    • 有什么方法把接口指针转换为相应的类指针
    • 在VB中用WM_COPYDATA向VC程序发送一个Type,但遇到double数值就出错!!
    • COM组件间通信
    • ActiveX为何没有注册,在线等待
    • Dll中如何使用ActiveX控件?
    • 如何破解cab的activex控件?
    • 我的dll为什么会有这样的问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有