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 1: Line 1:
'''Español''' [[How_to_Store_and_Retrieve_Image_on_SQLite|English]]<br />[[Category:HowTo]]<br />[[Category:QtDevelopmentSpanish::General]]<br />[[Category:snippets]]<br />[[Category:Spanish]]
'''Español''' [[How_to_Store_and_Retrieve_Image_on_SQLite|English]]
[[Category:HowTo]]
[[Category:QtDevelopmentSpanish::General]]
[[Category:snippets]]
[[Category:Spanish]]


= Como Guardar y Recuperar una Imagen o Archivo con SQLite =
= Como Guardar y Recuperar una Imagen o Archivo con SQLite =
Line 5: Line 9:
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:
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.<br />2. Guardar el QByteArray como un Binary Large Object (BLOB) en el banco de datos.
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 :
Por ejemplo :


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


QSqlQuery query;<br /> query.prepare("INSERT INTO imgtable (imgdata) VALUES (?)");<br /> query.addBindValue(byteArray);<br /> query.exec();<br /></code>
QSqlQuery query;
query.prepare("INSERT INTO imgtable (imgdata) VALUES (?)");
query.addBindValue(byteArray);
query.exec();
</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>
Ahora, la imagen/archivo puede ser recuperada como cualquier otro tipo de dato
<code>
QSqlQuery query("SELECT imgdata FROM imgtable");
query.next();
QByteArray array = query.value(0).toByteArray();
</code>


Creando un QPixmap desde un QByteArray :<br /><code><br /> QPixmap pixmap;<br /> pixmap.loadFromData(array);<br /></code>
Creando un QPixmap desde un QByteArray :
<code>
QPixmap pixmap;
pixmap.loadFromData(array);
</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 11:44, 25 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 :

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

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

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

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

Creando un QPixmap desde un QByteArray :

 QPixmap pixmap;
 pixmap.loadFromData(array);

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