lxg

导航

 

Qt使用Oracle(Rac集群数据库)注意点
对于一般的数据库,即便是像access这样比较特殊的数据库,都可以通过单独设置主机名、端口、数据库名称的方式连接,但是对于Oracle数据库却不是这样。 因为oracle 12c(注:oracle 11g也可以) 使用多个插拔数据库,不能采用传统的设置端口、主机名称、数据库名称的方式连接oracle,直接通过设置数据库名称为:hostname:port/pdb_name的方式访问,即:主机地址:端口/pdb数据库名称方式访问oracle数据库。 如果按照普通的数据库的方式去设置Oracle,那么会报如下的错误:
 
 ORA-12505, TNS:listener does not currently know of SID
 
对于Qt而言正确使用Oracle的方式是:hostname:port/dbName,如下
db.setDatabaseName("127.0.0.1:1521/dbName");

       QSqlDatabase db11 = QSqlDatabase::addDatabase("QOCI");
            //db11.setDatabaseName("196.168.88.174:1521/orcl");
            db11.setDatabaseName(QString("%1:%2/%3").arg("196.168.88.174").arg(1521).arg("orcl"));
            //db11.setPort(1521);
            //db11.setHostName("196.168.88.174");
            //db11.setDatabaseName("orcl");
            db11.setUserName("system");
            db11.setPassword("123Oracle");
            if (!db11.open())
            {
                qDebug() << db11.lastError().text();
            }
            else
            {
                qDebug()<< "远程数据库db11成功";
            }

 

posted on 2021-03-01 15:36  lxg_7105  阅读(694)  评论(0编辑  收藏  举报