How to Store and Retrieve Image on SQLite/bg

From Qt Wiki
< How to Store and Retrieve Image on SQLite
Revision as of 07:18, 24 February 2015 by Maintenance script (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Български English Español

Как да съхраним и извлечем изображение или файл от SQLite

Изображенията и файловете като цяло могат да се съхраняват в база данни. Ето един начин да направите това като изпълните следните стъпки:

1. Прочетете файла в QByteArray.
2. Съхранете QByteArray-я като бинарен обект(Binary Large Object) в базата данни.

За пример :

<br /> QFile file&amp;amp;#40;fileName&amp;amp;#41;;<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 />

Сега изображението/файла може да се получи като всеки друг вид данни:

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

Създаване на QPixmap от QByteArray :

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

И сме говоти! Сега пиксмапа може да се използва в бутон каот икона или в QLabel и т.н.