如何设置OLEDB以连接到远程数据库?

时间:2012-01-13 22:15:29

标签: database oracle connection connection-string oledb

我在本地运行Oracle 11g数据库。我有一个小程序通过VC ++中的OLEDB在代码中连接它(它只运行一些数据库测试,我确保在进入真实的东西之前我已经完成了所有的基础知识。)代码中的连接信息仅包括提供者,实例名称,用户名和密码。所有这些方面都可以。

//For example, both these ways of connecting work:
result = dataSource.Open(DATABASE_PROVIDER, DATABASE_NAME,
                         DATABASE_USER_NAME, DATABASE_USER_PASSWORD);

result = dataSource.OpenFromInitializationString(L"Provider=OraOLEDB.OracleDataSource=orcl;User ID=SYSTEM;Password=admin;");

我现在想将此程序发送到我网络中的其他计算机并从那里运行,连接到我本地计算机上的数据库。
我将如何以代码理解的方式将其他计算机连接到我的数据库?

我一直在尝试通过IP而不是“localhost”进行本地连接,因此我可以简单地使用相同的代码和客户端。在这方面,我尝试了一些没有成功的事情:
- 我尝试修改连接字符串以将“数据源”更改为我的IP,但无法连接 - 我试过从我见过的其他连接字符串示例中添加一些参数,但它们不适用于Oracle而被忽略 - 我也尝试修改tnsnames.ora和listener.ora将本地主机更改为IP地址,但我知道这不起作用,因为如果我输入了垃圾,它仍会连接。

任何人都有帮助的知识吗?

1 个答案:

答案 0 :(得分:0)

对于Oracle数据库,您应该在其指向本地数据库的各台计算机上设置新的tnsnames条目。然后使用新的tns名称作为数据源。您还需要确保首先可以访问本地数据库实例。 (顺便说一下,Oracle Express中默认不启用此功能。)

我通常使用msdaora作为数据提供者而不是OraOLEDB获得更多成功。