自己找到解决方案了,分享一下。
SID方式:
QSqlDatabasedb=QSqlDatabase::addDatabase("QOCI");
db.setHostName("192.168.0.2");//HOST
db.setDatabaseName("ora_001");//SID
db.setUserName("test");//username
db.setPassword("test001");//password
db.setPort(1521);//port
if(db.open())
cout<<"SID方式打开成功"<<endl;
else
cout<<"打开失败"<<endl;
db.close();
db.open();
QSqlQueryquery("SELECT*FROMtabswhererownum<=5");
while(query.next()){
QStringcountry=query.value(0).toString();
cout<<country.toLocal8Bit().data()<<endl;
}
SERVICE_NAME方式:
/*
tnsnames.ora
JFP690=(DESCRIPTION=(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.2)(PORT=1521)))
(CONNECT_DATA=(sid=test001)))
*/
QSqlDatabasedb=QSqlDatabase::addDatabase("QOCI");
db.setHostName("");//HOST填空
db.setDatabaseName("JFP690");//service_name
db.setUserName("test");//username
db.setPassword("test001");//password
if(db.open())
cout<<"service_name方式打开成功"<<endl;
else
cout<<"打开失败"<<endl;
QSqlQueryquery("SELECT*FROMtabswhererownum<=5");
while(query.next()){
QStringcountry=query.value(0).toString();
cout<<country.toLocal8Bit().data()<<endl;
}