Как получить размер данных в поле BLOB в наборе результатов? (с использованием C ++ и MySQL Connector C ++)
Чтобы прочитать данные из набора результатов, я сначала выделил для них память. Чтобы выделить память, мне нужно знать размер данных BLOB-объектов в наборе результатов.
Поиск в Интернете и StackOverflow, я нашел два метода: OCTECT
и BLOB-поток.
Одним из способов определения размера BLOB является использование функции OCTECT()
, которая требует новый запрос и создает новый набор результатов. Я бы предпочел не использовать этот метод.
Другой метод - использовать поток больших двоичных объектов, искать до конца и получать позицию файла. Однако я не знаю, можно ли перемотать поток в начало, чтобы прочитать данные. Этот метод требует дополнительного чтения всего потока.
Интерфейсы ResultSet
и ResultSetMetaData
MySQL Connector C ++ 1.0.5 не предоставляют метод для получения размера данных в поле (столбце).
Существует ли процесс для получения размера данных в поле BLOB, учитывая только набор результатов и имя поля?
Я использую MySQL Connector C ++ 1.0.5, C ++, Visual Studio 2008, Windows Vista / XP и «Версия сервера: MySQL Community Server (GPL) сообщества 5.1.41».