• 30069阅读
  • 5回复

QT连接Oralce只能使用SID,使用SERVICE_NAME就失败 [复制链接]

上一主题 下一主题
离线jiang__30
 
只看楼主 倒序阅读 楼主  发表于: 2011-12-05
QT连接Oralce只能使用SID,使用SERVICE_NAME失败


谁遇到过这种情况?
离线jiang__30
只看该作者 1楼 发表于: 2011-12-16
自己找到解决方案了,分享一下。
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;
}
离线bailangxhao
只看该作者 2楼 发表于: 2012-01-12
qt 连接oracle 数据库的 例子码能不能给我来个。。。学习中,邮箱bl555bl@163.com
月夜出没
离线jiang__30
只看该作者 3楼 发表于: 2012-02-16
回 2楼(bailangxhao) 的帖子
给你发邮件了。请查收。
离线bailangxhao
只看该作者 4楼 发表于: 2012-02-17
感动涕凌啊。。。呵呵,谢谢
月夜出没
离线zxq1207
只看该作者 5楼 发表于: 2012-02-18
学习一下。。。最近正准备搞这块。。。。
快速回复
限100 字节
 
上一个 下一个