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 :

  1.  
  2.     QFile file(fileName);
  3.     if (!file.open(QIODevice::ReadOnly)) return;
  4.     QByteArray byteArray = file.readAll();
  5.  
  6.     QSqlQuery query;
  7.     query.prepare("INSERT INTO imgtable (imgdata) VALUES (?)");
  8.     query.addBindValue(byteArray);
  9.     query.exec();

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

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

Creando un QPixmap desde un QByteArray :

  1.     QPixmap pixmap = QPixmap();
  2.     pixmap.loadFromData(array);

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

Categories: