10.6.1 Класс cursor.MySQLCursorBuffered
Класс MySQLCursorBuffered наследуется от MySQLCursor.
После выполнения запроса курсор MySQLCursorBuffered извлекает весь результат из сервера и буферизует строки.
Для запросов, выполняемых с использованием буферизованного курсора, методы извлечения строк, такие как fetchone(), возвращают строки из набора буферизованных строк. Для небуферизованных курсоров строки не извлекаются с сервера, пока не будет вызван метод извлечения строк. В этом случае вы должны убедиться, что извлечены все строки результата перед выполнением других операторов на том же соединении, иначе будет возбуждено исключение InternalError (Найден необработанный результат).
MySQLCursorBuffered может быть полезно в ситуациях, когда необходимо объединить или вычислить несколько запросов с небольшими наборами результатов.
Чтобы создать буферизованный курсор, используйте аргумент buffered при вызове метода соединения cursor(). В качестве альтернативы, чтобы сделать все курсоры, созданные из соединения, буферизованными по умолчанию, используйте аргумент соединения buffered аргумент соединения.
Пример:
import mysql.connector
cnx = mysql.connector.connect()
# Only this particular cursor will buffer results
cursor = cnx.cursor(buffered=True)
# All cursors created from cnx2 will be buffered by default
cnx2 = mysql.connector.connect(buffered=True)
Для практического примера см. Раздел 6.1 «Урок: Изменение зарплаты сотрудника с использованием буферизованного курсора».
© 2025 Oracle
Licensed under the GPLv2 License.