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

最后一步了,和远程数据库交互编程。哈哈,说是交互编程,只负责登陆成功而已。

 

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

 

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 看看结果吧。

 

至此全部完成了,每一个细节点都要仔细推敲,这样就不会乱了。有问题留言。

 

 

你可能感兴趣的:(oracle,数据库,linux,unix,远程连接,数据库服务器)