首页 > 代码库 > WIN7+QT5.2.0 连接oracle11g问题及解决方法

WIN7+QT5.2.0 连接oracle11g问题及解决方法

用下面的代码建立连接之后,出现了几个问题

[html] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. //连接数据库  
  2.         QSqlDatabase db = QSqlDatabase::addDatabase("QOCI");  
  3.         /**连接Oracle数据库  
  4.           *数据库名:abc  
  5.           *表名:my_oracle  
  6.           *用户名:sys  
  7.           *密码:123  
  8.           *端口号:(默认)1521  
  9.         */  
  10.         db.setPort(1521);  
  11.         db.setHostName("localhost");  
  12.         db.setDatabaseName("abc");  
  13.         db.setUserName("sys");  
  14.         db.setPassword("123");  
  15.         if (!db.open())  
  16.     {  
  17.             //链接数据库失败";  
  18.         db.lastError().text();  
  19.             return false;  
  20.         }  
将db.lastError().text();的内容输出到label中后显示如下问题:
1.出现提示:driver not loaded
解决方法:将Qt安装目录C:\Qt\Qt5.2.0\5.2.0\Src\qtbase\plugins下的文件夹sqldrivers复制到自己的工程文件build-linkOracle-Desktop_Qt_5_2_0_MinGW_32bit-Debug\debug目录下。
文件夹sqldrivers里面有四个文件:libqsqloci.a, libqsqlocid.a, qsqloci.dll,qsqlocid.dll
2.出现提示:ORA-28009:应当以 SYSDBA 身份或SYSOPER 身份建立 SYS 连 Unable to logon 
解决方法:新建一个用户,用新的用户建立连接,连接成功。