How to Store and Retrieve Image on SQLite/es: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 9: Line 9:
Por ejemplo :
Por ejemplo :


<code><br /> QFile file&amp;amp;#40;fileName&amp;amp;#41;;<br /> if (!file.open(QIODevice::ReadOnly)) return;<br /> QByteArray byteArray = file.readAll();
<code><br /> QFile file(fileName);<br /> if (!file.open(QIODevice::ReadOnly)) return;<br /> QByteArray byteArray = file.readAll();


QSqlQuery query;<br /> query.prepare(&quot;INSERT INTO imgtable (imgdata) VALUES (?)&quot;);<br /> query.addBindValue(byteArray);<br /> query.exec&amp;amp;#40;&amp;#41;;<br /></code>
QSqlQuery query;<br /> query.prepare("INSERT INTO imgtable (imgdata) VALUES (?)");<br /> query.addBindValue(byteArray);<br /> query.exec();<br /></code>


Ahora, la imagen/archivo puede ser recuperada como cualquier otro tipo de dato<br /><code><br /> QSqlQuery query(&quot;SELECT imgdata FROM imgtable&amp;quot;);<br /> query.next();<br /> QByteArray array = query.value(0).toByteArray();<br /></code>
Ahora, la imagen/archivo puede ser recuperada como cualquier otro tipo de dato<br /><code><br /> QSqlQuery query("SELECT imgdata FROM imgtable");<br /> query.next();<br /> QByteArray array = query.value(0).toByteArray();<br /></code>


Creando un QPixmap desde un QByteArray :<br /><code><br /> QPixmap pixmap;<br /> pixmap.loadFromData(array);<br /></code>
Creando un QPixmap desde un QByteArray :<br /><code><br /> QPixmap pixmap;<br /> pixmap.loadFromData(array);<br /></code>


Esta hecho. Ahora el pixmap puede ser usado en un QButton como un icono o en un QLabel, etc.
Esta hecho. Ahora el pixmap puede ser usado en un QButton como un icono o en un QLabel, etc.

Revision as of 14:39, 24 February 2015

Español English



Como Guardar y Recuperar una Imagen o Archivo con SQLite

Imágenes o cualquier tipo de archivos pueden ser guardados en un banco de datos. Aguí esta una manera de hacerlo siguiendo los siguientes pasos:

1. Cargar el archivo dentro de un QByteArray.
2. Guardar el QByteArray como un Binary Large Object (BLOB) en el banco de datos.

Por ejemplo :

<br /> QFile file(fileName);<br /> if (!file.open(QIODevice::ReadOnly)) return;<br /> QByteArray byteArray = file.readAll();

QSqlQuery query;<br /> query.prepare("INSERT INTO imgtable (imgdata) VALUES (?)");<br /> query.addBindValue(byteArray);<br /> query.exec();<br />

Ahora, la imagen/archivo puede ser recuperada como cualquier otro tipo de dato

<br /> QSqlQuery query("SELECT imgdata FROM imgtable");<br /> query.next();<br /> QByteArray array = query.value(0).toByteArray();<br />

Creando un QPixmap desde un QByteArray :

<br /> QPixmap pixmap;<br /> pixmap.loadFromData(array);<br />

Esta hecho. Ahora el pixmap puede ser usado en un QButton como un icono o en un QLabel, etc.