Qt存儲圖片到數(shù)據(jù)庫案例實現(xiàn)
作者:bjst-059 
  Qt存儲圖片到數(shù)據(jù)庫案例實現(xiàn)是本文要介紹的內(nèi)容,主要是來學(xué)習(xí)QT數(shù)據(jù)庫中圖片的存儲,具體內(nèi)容的實現(xiàn)來看本文詳解。
 Qt存儲圖片到數(shù)據(jù)庫案例實現(xiàn)是本文要介紹的內(nèi)容,主要是來學(xué)習(xí)QT數(shù)據(jù)庫中圖片的存儲,以下是以O(shè)racle 10G為開發(fā)平臺運行的測試代碼。
- //連接DB
 - QSqlDatabase db = QSqlDatabase::addDatabase("QOCI");
 - // QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); // cannot connect
 - db.setHostName("192.168.0.123");
 - db.setDatabaseName("ORCL");
 - db.setUserName("testuser");
 - db.setPassword("admin");
 - db.setPort(1521);
 - if (!db.open())
 - {
 - printf("打開失敗n");
 - }
 - else
 - {
 - printf("打開成功n");
 - QSqlQuery query;
 - //do insert
 - //blob
 - QByteArray data;
 - QString path = "F:/FtpSet/Ftp02/1111111111.JPG";
 - QFile* file=new QFile(path); //fileName為二進(jìn)制數(shù)據(jù)文件名
 - file->open(QIODevice::ReadOnly);
 - data = file->readAll();
 - file->close();
 - QVariant var(data);
 - QString sql = "insert into qttest(id,field_blob) values(?,?)";
 - query.prepare(sql);
 - query.addBindValue(100);
 - query.addBindValue(var);
 - if(!query.exec())
 - {
 - printf("[insert error]");
 - printf(query.lastError().text().toLocal8Bit().data());
 - printf("n");
 - }
 - else
 - {
 - printf("[insert ok]n");
 - }
 
還有一種獲取BLOB數(shù)據(jù)入?yún)⒌姆椒ㄔ贛ysql中運行正常,Oracle中能運行,代碼如下:
- QByteArray ba;
 - QBuffer buffer(&ba);
 - buffer.open(QIODevice::ReadWrite);
 - QPixmap pixmap(path);
 - pixmap.save(&buffer,"JPG");
 - QVariant variant(ba);
 
小結(jié):Qt存儲圖片到數(shù)據(jù)庫案例實現(xiàn)的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)能對你有所幫助!
責(zé)任編輯:zhaolei 
                    來源:
                    互聯(lián)網(wǎng)
 














 
 
 
 
 
 
 