How to Store and Retrieve Image on SQLite/bg

From Qt Wiki
< How to Store and Retrieve Image on SQLite
Revision as of 16:55, 17 August 2017 by Michael Scopchanov (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine.
Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean.

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

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

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

1. Съдържанието на файла с изображението се прочита и записва в променлива от тип QByteArray

2. Променливата от тип QByteArray се записва като двоичен обект (Binary Large Object) в базата от данни

Пример:

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

3. Изображението е вече налично в базата от данни и може да бъде извлечено чрез заявка от тип SELECT, както всеки друг тип данни:

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

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

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

5. Променливата от тип Pixmap съдържа желаното изображение и може да бъде използвана за конкретните нужди на приложението, напр. като икона на бутон, изобразена чрез QLabel и т.н.