mysql 获取结果_【原创】7. MYSQL++中的查询结果获取(各种Result类型)

在本节中,我将首先介绍MYSQL++中的查询的几个简单例子用法,然后看一下mysqlpp::Query中的几个与查询相关的方法原型(重点关注返回值),最后对几个关键类型进行解释。

1. MYSQL++的查询实例

下面的两个例子分别是STORE(所有数据一次性从服务器拉到本地缓存)和USE(将数据一条一条从服务器拉到本地)的使用方式,其中STORE内部实质就是mysql_store(

),而USE实质就是调用了mysql_use( )。

说明,下面的例子虽然使用的都是最为基本的查询过程(即没有使用template

sql或者SSQLS),但是这个并不影响我们的讨论,因为遍历结果集的过程是一致的。

STOREmysqlpp::Query query = conn.query("select item from stock");

mysqlpp::StoreQueryResult res = query.store();

mysqlpp::StoreQueryResult::const_iterator it;

for (it = res.begin(); it != res.end(); ++it)

{

mysqlpp::Row row = *it;

// 第一列 row[0]

// 第二列 row[1]

}

USEmysqlpp::Query query = conn.query("select * from stock");

mysqlpp::UseQueryResult res = query.use();

while (mysqlpp::Row row = res.fetch_row())

{

row["item"];

row["num"];

}

// Check for error:

// can‘t distinguish "end of results" and

// error cases in return from fetch_row() otherwise

if (conn.errnum())

{

cout << "Error in fetch_row";

}

从上面的两个例子中我们大致可以看出来,整个结果集的查询过程就是针对相匹配的Result类型,找到ROW,然后逐行或者跳跃着查找。

2.

Result相关类型的使用场合

首先让我们回顾mysqlpp::Query中提到的几个方法,以及他们的返回值。以下部分内容直接摘自关于mysqlpp::Query的介绍的内容。

为了讲述方便,我们先来看一下在result.h(Declares classes for holding information about SQL

query)中所定义的各种类型的关系。这几个类型后面会仔细说明。

你可能感兴趣的:(mysql,获取结果)