MySQL 连接器/C++ 1.1 开发人员指南 / 第 7 章连接器/C++ 教程 / 7.3 使用 PreparedStatement 对象调用存储过程 /
7.3.3 对返回结果集的存储过程使用 PreparedStatement
此示例说明如何处理存储过程生成的结果集。
-
复制教程框架代码:
$> cp framework.cpp ps_scenario3.cpp
-
将以下代码添加到
try
教程框架的块中:sql::Driver * driver = get_driver_instance(); std::auto_ptr< sql::Connection > con(driver->connect(url, user, pass)); con->setSchema(database); std::auto_ptr< sql::PreparedStatement > pstmt; std::auto_ptr< sql::ResultSet > res; pstmt.reset(con->prepareStatement("CALL get_data()")); res.reset(pstmt->executeQuery()); for(;;) { while (res->next()) { cout << "Name: " << res->getString("Name") << " Population: " << res->getInt("Population") << endl; } if (pstmt->getMoreResults()) { res.reset(pstmt->getResultSet()); continue; } break; }
按照第 7.1 节“先决条件和背景信息” 中的说明编译程序 。
-
运行程序:
$> ./ps_scenario3
记下生成的输出。
该代码使用
PreparedStatement
对象执行存储过程。标准
do
/while
构造用于确保获取所有结果集。getInt
返回值是使用和getString
方法
从结果集中获取的
。