您的位置:首页 > 数据库 > Oracle

oracle:unix(linux适用)环境下使用occi远程连接oracle数据库(新人教学版)---3

2011-05-12 10:42 1521 查看
最后一步了,和远程数据库交互编程。哈哈,说是交互编程,只负责登陆成功而已。

第三步,程序中登陆远程数据库。

1、验证unix有无配置远程数据库的信息(unix本地服务名设置)

unix cd到oracle的目录去,找/opt/app/ora10g/product/10.2.0/network/admin/tnsnames.ora文件。嗯是的,就是这个文件,tns名称服务文件,这个文件里指明了远程服务器的ip等信息。无论装的是oracle服务端还是客户端还是instant client都必须找到这个文件,哪怕自己建(instant client可能要自己建)。vi tnsnames.ora 看是否有如下信息段:

DBDEMO =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.6.6.15)(PORT = 1521))
(LOAD_BALANCE = no)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = testDB)
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = BASIC)
(RETRIES = 180)
(DELAY = 5)
)
)
)

这个信息段可以自定义多种信息,可以搜索看看,但核心是指明DBDEMO是unix端起得服务名,可以任意起名但cpp文件里要用到的,而HOST = 10.6.6.15是远程数据库所在地址。SERVICE_NAME = testDB看是远程数据库的名(全局数据库名,顺便提一下远程数据库要设置监听程序,你懂的,我有篇文章介绍了客户端和服务端的链接原理),这个名字必须要正确。保证这几个要点可以看2.

2、cpp文件的编写。

先看代码吧

#include <iostream>
#include <occi.h>
using namespace std;
using namespace oracle::occi;
main()
{
Environment *env=Environment::createEnvironment();//create succ

string name = "name";
string pwd = "pwd";
string dbname = "DBDEMO";

try
{
Connection *conn=env->createConnection(name,pwd,dbname);//
cout<<"conn succ!"<<endl;
env->terminateConnection(conn);//
}
catch(SQLException e)
{
cout<<e.what()<<endl;//
}

Environment::terminateEnvironment(env);//
cout<<"end!"<<endl;
}


语句都能理解吧,就是建立链接,值得注意的是用户名和密码,以及DBDEMO名字,是unix配置的服务名,而不是远程oracle服务器的全局数据库名。本cpp是通过nuix的network文件夹连接远程数据库服务器的。修改数据库内容就自己去学吧。还很多路要走。

ok,make、./helloworld 看看结果吧。

至此全部完成了,每一个细节点都要仔细推敲,这样就不会乱了。有问题留言。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐