2017-02-07 3 views
0

У меня есть таблица, содержащая большие данные. Я хочу получить все данные и обработать их один за другим.Mysql Connector C++ Небуферизованный ResultSet C++

Согласно документации здесь: https://dev.mysql.com/doc/connector-cpp/en/connector-cpp-examples-results.html

API-интерфейс для получения результатов одинаков для (простых) отчетностей и подготовленных заявлений. Если ваш запрос возвращает один результирующий набор, используйте sql :: Statement :: executeQuery() или sql :: PreparedStatement :: executeQuery() для запуска вашего запроса. Оба метода: return sql :: Объекты ResultSet. По умолчанию Connector/C++ выполняет буферизацию всех наборов результатов на клиенте для поддержки курсоров.

В нем говорится, что по умолчанию оно буферизует все наборы результатов на клиенте. Как я могу отключить это?

ответ

1

В заявлении вы можете определить тип набора результатов. Использование TYPE_FORWARD_ONLY приводит к небуферных наборов результатов, как это определено в mysql release notes:

... Реализовано getResultSetType() и setResultSetType() для заявления. Использует TYPE_FORWARD_ONLY, что означает небуферизованный результирующий набор и TYPE_SCROLL_INSENSITIVE, что означает буферизованный результирующий набор.

Надеюсь, это поможет.

Смежные вопросы