用下面的代码建立连接之后,出现了几个问题
//连接数据库 QSqlDatabase db = QSqlDatabase::addDatabase("QOCI"); /**连接Oracle数据库 *数据库名:abc *表名:my_oracle *用户名:sys *密码:123 *端口号:(默认)1521 */ db.setPort(1521); db.setHostName("localhost"); db.setDatabaseName("abc"); db.setUserName("sys"); db.setPassword("123"); if (!db.open()) { //链接数据库失败"; db.lastError().text(); return false; }
将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
解决方法:新建一个用户,用新的用户建立连接,连接成功。(成功原因不清楚)