Mysql Connector C ++无缓冲的ResultSet C ++ [英] Mysql Connector C++ Unbuffered ResultSet C++
问题描述
我有一个可容纳大数据的表. 我想获取所有数据并一一处理.
I have a table that holds large data. I want to fetch all the data and process them one by one.
根据此处的文档: https://dev.mysql.com/doc/connector-cpp/zh-CN/connector-cpp-examples-results.html
用于(简单)语句的结果集的API相同 和准备好的陈述.如果查询返回一个结果集,请使用 sql :: Statement :: executeQuery()或 sql :: PreparedStatement :: executeQuery()运行查询.两种方法 返回sql :: ResultSet对象.默认情况下,Connector/C ++缓冲所有 客户端上的结果集以支持游标.
The API for fetching result sets is identical for (simple) statements and prepared statements. If your query returns one result set, use sql::Statement::executeQuery() or sql::PreparedStatement::executeQuery() to run your query. Both methods return sql::ResultSet objects. By default, Connector/C++ buffers all result sets on the client to support cursors.
它表示默认情况下会在客户端上缓冲所有结果集. 如何禁用它?
It says by default it buffers all results sets on the client. How can I disable that?
推荐答案
在语句中,您可以定义结果集的类型.使用TYPE_FORWARD_ONLY
会导致未缓冲的结果集,如
At the statement, you can define the type of the result set. Using TYPE_FORWARD_ONLY
leads to unbuffered result sets as defined in mysql release notes:
...实现了getResultSetType()和setResultSetType()的实现 陈述.使用TYPE_FORWARD_ONLY,这表示未缓冲的结果集 和TYPE_SCROLL_INSENSITIVE,表示缓冲的结果集.
... Implemented getResultSetType() and setResultSetType() for Statement. Uses TYPE_FORWARD_ONLY, which means unbuffered result set and TYPE_SCROLL_INSENSITIVE, which means buffered result set.
希望有帮助.
这篇关于Mysql Connector C ++无缓冲的ResultSet C ++的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!