Qt存储图片到数据库案例实现(转)

来源:互联网 发布:vpn软件哪个好 编辑:程序博客网 时间:2024/06/04 18:37

Qt存储图片到数据库案例实现

2011-08-30 15:10 bjst-059 互联网 字号:T | T
一键收藏,随时查看,分享好友!

Qt存储图片到数据库案例实现是本文要介绍的内容,主要是来学习QT数据库中图片的存储,具体内容的实现来看本文详解。

AD:2013云计算架构师峰会课程资料下载

Qt存储图片数据库案例实现是本文要介绍的内容,主要是来学习QT数据库图片的存储,以下是以Oracle 10G为开发平台运行的测试代码。

  1. //连接DB  
  2. QSqlDatabase db = QSqlDatabase::addDatabase("QOCI");  
  3. // QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); // cannot connect  
  4. db.setHostName("192.168.0.123");  
  5. db.setDatabaseName("ORCL");  
  6. db.setUserName("testuser");  
  7. db.setPassword("admin");  
  8. db.setPort(1521);  
  9.  
  10. if (!db.open())  
  11. {  
  12. printf("打开失败n");  
  13. }  
  14. else  
  15. {  
  16. printf("打开成功n");  
  17.  
  18. QSqlQuery query;  
  19.  
  20. //do insert  
  21.  
  22. //blob  
  23. QByteArray data;  
  24. QString path = "F:/FtpSet/Ftp02/1111111111.JPG";  
  25. QFile* file=new QFile(path); //fileName为二进制数据文件名  
  26. file->open(QIODevice::ReadOnly);  
  27. data = file->readAll();  
  28. file->close();  
  29. QVariant var(data);  
  30.  
  31. QString sql = "insert into qttest(id,field_blob) values(?,?)";  
  32. query.prepare(sql);  
  33. query.addBindValue(100);  
  34. query.addBindValue(var);  
  35. if(!query.exec())  
  36. {  
  37. printf("[insert error]");  
  38. printf(query.lastError().text().toLocal8Bit().data());  
  39. printf("n");  
  40. }  
  41. else  
  42. {  
  43. printf("[insert ok]n");  

还有一种获取BLOB数据入参的方法在Mysql中运行正常,Oracle中能运行,代码如下:

  1. QByteArray ba;  
  2. QBuffer buffer(&ba);  
  3. buffer.open(QIODevice::ReadWrite);  
  4. QPixmap pixmap(path);  
  5. pixmap.save(&buffer,"JPG");  
  6. QVariant variant(ba); 

小结:Qt存储图片数据库案例实现的内容介绍完了,希望通过本文的学习能对你有所帮助!

0 0
原创粉丝点击