MySQL, C ++: necesidad del tamaño de la gota para leer los datos blob

votos
1

¿Cómo puedo obtener el tamaño de los datos en un campo BLOB en el conjunto de resultados? (Uso de C ++ y MySQL Connector C ++)

Con el fin de leer los datos del conjunto de resultados, tengo asignar memoria para el primero. Con el fin de asignar memoria, necesito saber el tamaño de los datos blob en el conjunto de resultados.

Buscar en la web y StackOverflow, he encontrado dos métodos: OCTECTy corriente BLOB.

Un método para encontrar el tamaño BLOB es utilizar OCTECT()la función, lo que requiere una nueva consulta y produce un nuevo conjunto de resultados. Yo prefiero no utilizar este método.

Otro método es utilizar la corriente de blob y buscar hasta el final, y obtener la posición del archivo. Sin embargo, no sé si la corriente se puede rebobinar hasta el principio con el fin de leer los datos. Este método requiere una lectura adicional de la totalidad de la corriente.

Los ResultSety ResultSetMetaDatalas interfaces de 1.0.5 MySQL Connector C ++ no proporcionan un método para obtener el tamaño de los datos en un campo (columna).

¿Existe un procedimiento para obtener el tamaño de los datos en un campo BLOB dado sólo el conjunto de resultados y un nombre de campo?

Estoy utilizando MySQL Connector C ++ 1.0.5, C ++, Visual Studio 2008, Windows Vista / XP y Versión de servidor: 5.1.41-comunidad MySQL Community Server (GPL).

Publicado el 24/02/2010 a las 21:19
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
3

Se podría hacer un selecto como:

select LENGTH(content),content where id=123;

donde el contenido es el campo BLOB.

Saludos. ver: LENGTH (str)

Respondida el 25/02/2010 a las 16:18
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more