数据库操作:MFC连接与MYSQL

mysql 与MFC通常情况下都是用ODBC或者是是ADO相连接,但有点伤 我直接找网上的教程,仿照着进行连接,试了n边还是只能连接上,但无法进行如图读取,写入的操作。~有点伤心。
只能去看MYSQL手册,里面有C与MYSQL的API接口;由于MFC框架中调试比较困难,所以我现在win32控制台下实现与数据库的连接与对数据库的操作。(可能这也是原因之一,我错误的以为MFC是程序主体,其实MFC只是界面和消息相应,有点伤~).
首先我用的是是MYSQL5.5(建议按装32位的)
为了方便我在MYSQL中新建一个用户,并给与其相应权限
接下来我先进行了控制台上的编程:

#include"winsock.h"
#include"mysql.h"
#pragma comment(lib,"libmySQL.lib")
#include "stdio.h"
#include<string.h>

struct conn_info
{
    char *host;
    char *user;
    char *password;
    char *db;
};
MYSQL*  mysql_conn_setup(conn_info con)
{
 MYSQL *mysql = mysql_init(NULL);
 if (!mysql_real_connect(mysql,con.host,con.user,con.password,con.db,3306,NULL,0))
 {
  printf("Conection error : %s/n", mysql_error(mysql));
        exit(1);
 }
 return mysql;
}
MYSQL_RES* mysql_conn_sqlQuery(MYSQL *mysql,char *sql_Query)
{
    if(mysql_query(mysql,sql_Query))
    {
        printf("MySQL quer error:%s/n",mysql_error(mysql));
        exit(1);
    }
    return mysql_use_result(mysql);
}

void main()
{
    MYSQL *com;
    MYSQL_RES *res;
    MYSQL_ROW row;
    char sql_query[100];
    memset(sql_query,'\0',100);
    sprintf(sql_query,"show tables");
    struct conn_info info;
    info.host="localhost";
    info.user="lemon";
    info.password="123";
    info.db="student";
    com=mysql_conn_setup(info);
    res=mysql_conn_sqlQuery(com,sql_query);
    printf("mysql所有表:\n");
    int k=0;
    while((row=mysql_fetch_row(res))!=NULL)
    {

        printf("%s\n",row[0]);
    }
    mysql_free_result(res);
    mysql_close(com);
}


能显示出来数据库中表的张数(我去,用API就是这么快);

struct conn_info
{
    char *host;
    char *user;
    char *password;
    char *db;
};

其中结构体内保存了连接数据库所需要的信息,包括用户名,接口,密码,数据库

MYSQL*  mysql_conn_setup(conn_info con)
{
 MYSQL *mysql = mysql_init(NULL);
 if (!mysql_real_connect(mysql,con.host,con.user,con.password,con.db,3306,NULL,0))
 {
  printf("Conection error : %s/n", mysql_error(mysql));
        exit(1);
 }
 return mysql;
}

是测试是否连接上数据库;

MYSQL_RES* mysql_conn_sqlQuery(MYSQL *mysql,char *sql_Query)
{
    if(mysql_query(mysql,sql_Query))
    {
        printf("MySQL quer error:%s/n",mysql_error(mysql));
        exit(1);
    }
    return mysql_use_result(mysql);
}

是向数据库传入你要操作的语句,sql_Query中保存的SQL语句,mysql为主程序中申明的MYSQL指针

row=mysql_fetch_row(rew)

是抓取MYSQL返回的行数
用到mysql的部分基本上是这些,解释有点俗请见谅;
用API就是这么爽!

时间: 2024-08-04 10:10:11

数据库操作:MFC连接与MYSQL的相关文章

强大的php数据库操作类,支持mysql,mssql,pg

本文实例讲述了可用mysql,mssql,pg三种数据库的数据库操作类,你只要作任何修改就可以方便的改变你数据库的类型.分享给大家供大家参考.具体分析如下: 函数清单,索引: Open:打开数据库连接 Line:71 Close:关闭数据库连接 Line:107 SelectDB:选择数据库 Line:129 Query:创建查询 Line:151 DataSeek:移动记录指针 Line:175 FieldName:获取字段名称 Line:198 FieldType:获取字段类型 Line:2

access数据库-VC++ mfc连接odbc数据库后,不能对数据库的记录更新(增删改),只能查寻是什么原因?

问题描述 VC++ mfc连接odbc数据库后,不能对数据库的记录更新(增删改),只能查寻是什么原因? 下面是一段插入的代码,不能插入,在第二个str.Format()时出现FROM子句出错. 我在执行查询时是成功的. void CINPUT::OnTianjia() { // TODO: Add your control notification handler code here UpdateData(TRUE); if(m_No.IsEmpty() || m_name.IsEmpty()

mysql数据库操作示例(适合初学mysql者)

创建数据库 创建一个属于自己的数据库,看下面的语法 create database [if not exists] db_name; 前面一部分是固定关键字,db_name是你要创建的数据库的名字,例如: create database test04; 这样我们就创建了属于自己的数据库,如果数据库已经存在,使用if not exists可以避免创建已经存在的数据库的错误,很简单吧. 显示数据库 假如你不知道服务器主机上有多少数据库存在,可以用show databases语法来显示服务器主机上的数

常用的MySQL数据库操作sql语句

SELECT 查询语句和条件语句 INSERT 插入语句 UPDATE 更新语句(修改语句) DELETE 删除语句 书写标准:所有SQL操作语句使用大写字母书写,其他均为小写. 练习数据库:newdb 练习表(表名test) 字段: id uid  regdate remark 1  张三 NOW()   学生 2  李四         学生 3  王五         工人 4  赵六         学生 1.查询语句和条件语句 注意:SQL语句中的"`" != "'

数据库操作:MYSQL与MFC连接(二)

继上一片博客,这篇介绍数据库与MFC的连接,上篇是介绍用控制台连接MYSQL,其实MFC为代码增加一个界面,和一些消息相应(个人认为) 首先建一个MFC的工程,我这边建了一个Dlg 建好后看一下选项-> 目录->包含目录和库目录中是否包含了MYSQL的路径 再在Dlg.cpp中添加: #include"winsock.h" #include"mysql.h" #pragma comment(lib,"libmySQL.lib") 然后

MFC连接MySQL数据库时编辑框出现中文乱码

环境:Visual Studio 2010 + MySQL Server 5.1 + Navicat for Mysql 8.2 问题:MFC连接MySQL 数据库,编辑框出现中文乱码. 解决: 使用MySQL C API,在连接上数据库查询数据前加上 如下代码: mysql_query(&m_sqlCon,"SET NAMES 'GB2312'"); //m_sqlCon是MYSQL类型 查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www

qt连接MySQL数据库操作问题

问题描述 qt连接MySQL数据库操作问题 在qt项目中,main函数中连接了数据库,且连接成功,在其他函数中如何操作数据库,使用的是MySQL数据库,新手求大神指点! 解决方案 你可以把connection保存在一个全局变量里,别的函数操作它就可以了.http://blog.csdn.net/cgzhello1/article/details/8619276 解决方案二: 把这定义成全局的, _ConnectionPtr m_pConn; 用的时候 Execute 解决方案三: 定义全局 _C

Eclipse连接Mysql数据库操作总结_java

(自己亲测,开始学习Eclipse(我的Eclipse版本是4.5.2,Jdbc驱动器的jar包版本是5.1.7,亲测可以使用)连接到数据库的时候,发现网上有好多经验,但是发现网上的出现很多错误,故此发表此博客,希望对大家有所帮助) 1:首选你需要下载Jdbc驱动器(mysql-connector-java-5.1.7-bin.jar)这个文件 下载上面那个文件也是很是坎坷啊,所以为了你们的方便,特此分享. 2:下载好上面的Jdbc驱动器后,就可以开始动手操作了,首先打开Eclipse,创建一个

6.(Mysql数据管理相关)连接MYSQL,修改密码,增加新用户,数据库相关命令,表操作相关命令,数据相关命令,数据库sql导入和导出,备份数据库,查看不到mysql数据库的解决办法

 mysql安装完之后,登陆后发现只有两个数据库:mysql>show databases; +--------------------+ | Database           | +--------------------+ | information_schema | | test               | +--------------------+ ,mysql> use mysql ERROR 1044 (42000): Access denied for user''