How to Store and Retrieve Image on SQLite: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
'''English''' [[ | '''English''' [[How_to_Store_and_Retrieve_an_Image_or_File_with_SQLite_Spanish|Español]] [[How_to_Store_and_Retrieve_Image_on_SQLite_Bulgarian|Български]]<br />[[Category:HowTo]]<br />[[Category:snippets]] | ||
=How to Store and Retrieve an Image or File with | = 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.<br /> 2. Store QByteArray as a Binary Large Object in database. | 1. Read the system file into a QByteArray.<br />2. Store QByteArray as a Binary Large Object in database. | ||
For example : | For example : | ||
<code><br /> QFile file&amp;#40;fileName&amp;#41;;<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&amp;#40;&#41;;<br /></code> | |||
Now, the image/file can be retrieved like any other data<br /><code><br /> QSqlQuery query("SELECT imgdata FROM imgtable&quot;);<br /> query.next();<br /> QByteArray array = query.value(0).toByteArray();<br /></code> | |||
Creating a QPixmap from QByteArray :<br /><code><br /> QPixmap pixmap = QPixmap();<br /> pixmap.loadFromData(array);<br /></code> | |||
It is done. Now the pixmap can be used in a Button as icon or in label etc. | |||
Revision as of 14:45, 23 February 2015
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:
1. Read the system file into a QByteArray.
2. Store QByteArray as a Binary Large Object in database.
For example :
<br /> QFile file&amp;#40;fileName&amp;#41;;<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&amp;#40;&#41;;<br />
Now, the image/file can be retrieved like any other data
<br /> QSqlQuery query("SELECT imgdata FROM imgtable&quot;);<br /> query.next();<br /> QByteArray array = query.value(0).toByteArray();<br />
Creating a QPixmap from QByteArray :
<br /> QPixmap pixmap = QPixmap();<br /> pixmap.loadFromData(array);<br />
It is done. Now the pixmap can be used in a Button as icon or in label etc.