Difference between revisions of "How to Store and Retrieve Image on SQLite"

From Qt Wiki
Jump to: navigation, search
(Add "cleanup" tag)
(Cleanup)
Line 1: Line 1:
{{Cleanup | reason=Auto-imported from ExpressionEngine.}}
+
{{LangSwitch}}
 
 
 
[[Category:snippets]]
 
[[Category:snippets]]
 
[[Category:HowTo]]
 
[[Category:HowTo]]
 
'''English''' | [[How_to_Store_and_Retrieve_Image_on_SQLite_German|Deutsch]] | [[How_to_Store_and_Retrieve_an_Image_or_File_with_SQLite_Spanish|Español]] | [[How_to_Store_and_Retrieve_Image_on_SQLite_Bulgarian|Български]]
 
 
= How to Store and Retrieve an Image or File with SQLite =
 
 
 
Images or any files can be stored in a database. Here is one way to do it using the following steps:
 
Images or any files can be stored in a database. Here is one way to do it using the following steps:
  
1. Read the system file into a QByteArray.
+
# Read the system file into a QByteArray.
2. Store QByteArray as a Binary Large Object in database.
+
# Store QByteArray as a Binary Large Object in database.
  
 
For example :
 
For example :

Revision as of 00:05, 28 June 2015

En Ar Bg De El Es Fa Fi Fr Hi Hu It Ja Kn Ko Ms Nl Pl Pt Ru Sq Th Tr Uk Zh

Images or any files can be stored in a database. Here is one way to do it using the following steps:

  1. Read the system file into a QByteArray.
  2. Store QByteArray as a Binary Large Object in database.

For example :

 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();

Now, the image/file can be retrieved like any other data

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

Creating a QPixmap from QByteArray :

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

It is done. Now the pixmap can be used in a Button as icon or in label etc.