本章主要讲述如何在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变量
到此为止,我们操作数据库的内容就结束了。