Spec-Zone .ru
спецификации, руководства, описания, API
|
int mysql_stmt_store_result(MYSQL_STMT *stmt)
Наборы результатов производятся, вызывая mysql_stmt_execute()
к выполняемым готовым операторам для SQL-операторов такой как SELECT
, SHOW
,
DESCRIBE
, и EXPLAIN
. По умолчанию наборы результатов для успешно выполняемых готовых
операторов не буферизуются на клиенте и mysql_stmt_fetch()
выбирает их по одному от сервера. Чтобы заставить полный набор результатов быть буферизованным на клиенте,
вызвать mysql_stmt_store_result()
после привязки буферов данных с mysql_stmt_bind_result()
и перед вызовом mysql_stmt_fetch()
выбирать строки. (Для примера см. Раздел 22.8.11.11,"mysql_stmt_fetch()
".)
mysql_stmt_store_result()
является дополнительным для обработки набора результатов, если Вы не вызовете mysql_stmt_data_seek()
, mysql_stmt_row_seek()
, или mysql_stmt_row_tell()
. Те функции требуют seekable набора результатов.
Является ненужным вызвать mysql_stmt_store_result()
после выполнения SQL-оператора, который не производит набор результатов, но если Вы делаете, это не вредит или
вызывает известную проблему производительности. Можно обнаружить ли оператор, произведенный набор результатов,
проверяя если mysql_stmt_result_metadata()
возвраты NULL
. Для получения дополнительной информации обратитесь к Разделу
22.8.11.23,"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)
включать этому. См. Раздел 22.8.11.3,"mysql_stmt_attr_set()
".
Нуль, если результаты буферизуются успешно. Ненулевой, если ошибка произошла.
Команды выполнялись в неподходящем порядке.
Из памяти.
Сервер MySQL ушел.
Соединение с сервером было потеряно во время запроса.
Произошла неизвестная ошибка.