最近工作涉及到一点数据库开发,碰到一个这样的问题:
所需的数据来自两个不同版本的数据库,一部分在Oracle8i的DB1,一部分在Oracle10g的DB2(两个数据库版本都安装在本机上,先装8i,后装的10g),我在VC++下用ADO想分别建立对两个数据库的链接,这个连接字该怎么设置才能分别连接到不同的数据库。好像默认都是去10g访问。把两部分数据整到同一个版本下暂不考虑,实在不行再说。请大侠指教下,该怎么弄。

解决方案 »

  1.   

    在 db2 上创建到 db1 的数据库链接,这样应用程序只需要建立到 db2 的连接,在 db2 上通过数据库链接访问 db1。
      

  2.   

    这两个连接串怎么设,我是这样设的
    _bstr_t strCnn("Provider='RAOLEDB.Oracle';Data Source='DB1';");pConnection.CreateInstance(__uuidof(Connection));
    pConnection->Open(strCnn,"usr","pwd",adConnectUnspecified);这种是连不上Oracle8i的DB1的,但将Data Source='DB2'是可以连接到Oracle10g的DB2的,
    不知道还能设置什么参数可以使之访问Oracle8i.
      

  3.   

    试了这种方法,需要在[Oracle_Home]\NETWORK\ADMIN\tnsnames.ora文件中添加oracle8i的数据库实例DB1,是可以通过Oracle10g访问到Oracle8i的数据的,但不知道这种做法对效率是否有很大影响?每次读取数据记录条数在1万左右。