mysql的C++ API之mysql_use_result()的用法实例
2016-04-01 00:01
501 查看
网上的资料里说明的是,mysql_store_result()是把查询全部做完,然后一次性将查询结果返回给连接的客户端,而mysql_use_result()是逐条进行查询,逐条将结果返回给客户端,直到结果全部返回完毕。所以对于查询的数据量(数据记录树多,每条记录的数据也很大)特别大的情形时,如果运用mysql_store_result(),会因为执行查询需要消耗很长时间而导致查询“假死”。这时运用mysql_use_result()是个很好的选择。以下是mysql_use_result()的用法实例。
执行结果如下:
#include<iostream> #include<WinSock2.h> #include"mysql.h" using namespace std; int main() { MYSQL* mysql; MYSQL_RES* res; MYSQL_ROW row; char* queryCmd = "select * from inforoll"; int t,r,c; mysql=mysql_init(0); if(!(mysql_real_connect(mysql,"localhost","root","1234","roll6",3306,NULL,0))) { printf("connect database roll6 error:%s\n",mysql_error(mysql)); } else printf("connected...\n"); t = mysql_query(mysql,queryCmd); if(t) { printf("make query error: %s\n",mysql_error(mysql)); } else { printf("query made...\n"); res = mysql_use_result(mysql); if(res) { //int j = mysql_num_rows(res);如果这样写就只能查询出一行结果 //for(r=0;r<=mysql_num_rows(res);++r) while(row = mysql_fetch_row(res)) { //row = mysql_fetch_row(res); if(row==NULL) break; for(t=0;t<mysql_num_fields(res);++t) printf("%s ",row[t]); printf("\n"); } } mysql_free_result(res); } mysql_close(mysql); cout<<"Done"<<endl; return 0; }
执行结果如下:
相关文章推荐
- CPP中cout输出问题研究
- C++实验2-4-模拟ATM
- C++调用Python(基础)
- C++实验2-3-两点距离
- 【C++ Primer plus】【第九章】内存模型和名称空间
- C++作业2:银行
- C++第2次实验
- C++作业-2
- C++实验2-计算标准体重
- 设计模式之 原型模式(prototype)(C++实现 深拷贝 + 浅拷贝版本[bug])
- C/C++ 调用 Python(实例)
- C++作业2
- c++作业2
- c++第二次实验--类和对象1
- 1051: C语言程序设计教程(第三版)课后习题11.5
- c++第二次试验-学生成绩
- C++里的虚函数
- C语言中的整数自动转换原则
- c++第二次试验
- C++第二次作业