How to Store and Retrieve Image on SQLite/bg

From Qt Wiki
Jump to navigation Jump to search

Български 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();

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

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

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

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

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