6.4.29 mysql_stmt_store_result()
int
mysql_stmt_store_result(MYSQL_STMT *stmt)
Описание
Результаты набора данных создаются при вызове mysql_stmt_execute() для выполнения подготовленных запросов SQL, таких как , , , и . По умолчанию наборы результатов успешно выполненных подготовленных запросов не буферизуются на клиенте, и mysql_stmt_fetch() извлекает их по одному из сервера. Чтобы вызвать буферизацию всего набора результатов на клиенте, вызовите mysql_stmt_store_result() после привязки буферов данных с помощью mysql_stmt_bind_result() и перед вызовом mysql_stmt_fetch() для извлечения строк. (Для примера см. Раздел 6.4.12, «mysql_stmt_fetch()».)
mysql_stmt_store_result() является необязательным для обработки набора результатов, если вы не будете вызывать mysql_stmt_data_seek(), mysql_stmt_row_seek() или mysql_stmt_row_tell(). Эти функции требуют доступного для поиска набора результатов.
Необязательно вызывать mysql_stmt_store_result() после выполнения оператора SQL, который не создаёт набор результатов, но если вы это сделаете, это не навредит и не вызовет заметных проблем с производительностью. Вы можете определить, создал ли оператор набор результатов, проверив, возвращает ли mysql_stmt_result_metadata() NULL. Для получения дополнительной информации см. Раздел 6.4.24, «mysql_stmt_result_metadata()».
MySQL по умолчанию не вычисляет MYSQL_FIELD->max_length для всех столбцов в mysql_stmt_store_result(), поскольку вычисление этого значительно замедлило бы mysql_stmt_store_result(), и большинство приложений не нуждаются в max_length. Если вам нужно, чтобы max_length было обновлено, вы можете вызвать mysql_stmt_attr_set(MYSQL_STMT,
STMT_ATTR_UPDATE_MAX_LENGTH, &flag) для активации этого. См. Раздел 6.4.3, «mysql_stmt_attr_set()».
Значения возврата
Ноль в случае успеха. Отличное от нуля значение в случае возникновения ошибки.
Ошибки
-
Команды были выполнены в неправильном порядке.
-
Недостаточно памяти.
-
Сервер MySQL вышел из строя.
-
Подключение к серверу было потеряно во время запроса.
-
Возникла неизвестная ошибка.
© 2025 Oracle
Licensed under the GPLv2 License.