MFC连接与操作MySQL数据库详细教程(二)

本章主要讲述如何在MFC中操作数据库:

一.代码展示

mysql_query(&m_sqlCon, Mysql指令); //执行指令

mysql_store_result(&m_sqlCon);//得到存储结果集

mysql_fetch_row(MYSQL_RES *result);拿取结果集

------------------------------------------------------------------

MYSQL_RES* m_res;         //记录函数返回(接住结果集)
MYSQL_ROW m_row;          //记录行数

代码分析:

1.1执行指令

mysql_query(&m_sqlCon, 《Mysql指令》);

他的功能就是接受你输入的Mysql指令,例如我们要查询数据库有多少个表时,

在MySQL我们的指令是     SHOW TABLES;

但是,MFC不支持MySQL指令,所有我们就需要mysql_query()方法替我们把指令输入进去,放到对象中

于是就变成了

mysql_query(&m_sqlCon, “ SHOW TABLES;”);

注:MySQL指令中的分号“;”不要落下! 

1.2获取结果集

mysql_store_result(&m_sqlCon);

会将传递的对象中的指令得到的结果返回一个值,该值类型为“MYSQL_RES*”,所有我们还需声明一个MYSQL_RES*的值来接住这个返回的结果,这个返回的结果结构类似于二元数组,我们操作后的到的结果都存放在这里。

 MYSQL_RES* m_res;         //记录函数返回(接住结果集)

m_res = mysql_store_result(&m_sqlCon);//得到存储结果集

1.3获取结果集中的内容

mysql_fetch_row(MYSQL_RES *result);

MYSQL_ROW m_row;          

mysql_fetch_row()方法抓取结果集中的一行数据(可能包括很多列),该行数据的类型为“MYSQL_ROW”,所以我们还需要声明一个该类型的变量:m_row,接住这行数据。

我们在该类型定义中可知      MYSQL_ROW返回一个字符串数据 

所以在使用时也要像数组一样,例如下面的代码演示:

 while (m_row = mysql_fetch_row(m_res))//循环读行,直到结果集为空
  {
    m_Change.AddString(m_row[0]);//读取每一行的第一列数据,并添加到控件中
  }//   m_Change为控件的CString变量

到此为止,我们操作数据库的内容就结束了。 


版权声明:本文为sakatan原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。