需要確保數據庫連接上 QOCI為驅動
//oracle 數據庫連接 //需要在執行文件目錄添加 oci.dll oraociei11.dll
QSqlDatabase db = QSqlDatabase::addDatabase("QOCI");
db.setHostName("192.3.8.105");//數據庫主機
db.setPort(1521);
db.setDatabaseName("ORCL");//數據庫服務名
db.setUserName("RWGH");//數據庫用戶名
db.setPassword("rwgh");//密碼
bool ok = db.open();
qDebug()<<ok;
if(1)
{
//將照片以二進制流的方式存到數據庫
QPixmap pixmap("./image/test.png");
QByteArray byteArray = QByteArray();
QBuffer buffer(&byteArray);
buffer.open(QIODevice::WriteOnly);
pixmap.save(&buffer,"png",0);
QString str = QString("22");//圖片ID
//插入數據庫 TEST_PIC為數據庫表明 CONTENT為存儲照片字段 為Blob類型
QString strQSL = QString("insert into TEST_PIC(ID,CONTENT) values('%1',?)").arg(str);
QSqlQuery query;
query.prepare(strQSL);
query.addBindValue(byteArray);
query.exec();
}
if(1)
{
//從數據庫讀取照片
QByteArray byteText;
QString strsql = QString("select CONTENT,ID from TEST_PIC");
QSqlQuery query;
query.exec(strsql);
while (query.next()) {
byteText = query.value(0).toByteArray();
QString id = query.value(1).toString();
QPixmap pix;
pix.loadFromData(byteText,"png");
pix.save(QString("./test2.png"));//保存從數據庫讀取的照片到本地
}
}