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

Database 如何设置OLEDB以连接到远程数据库?,database,oracle,connection,connection-string,oledb,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,

我正在本地运行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地址,但我知道这不起作用,因为如果我输入垃圾,它仍会连接


任何人都有帮助的知识?

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


一般来说,使用msdaora作为数据提供者而不是OraOLEDB,我也取得了更大的成功。

您正在安装代码的其他计算机是否安装了Oracle客户端?如果是,哪个版本(即时客户端、完整客户端等)?这些机器是否有tnsnames.ora条目指向您要连接的任何数据库?其他机器上还没有安装任何东西,但我希望必须安装它们。在这些客户中修改我的tnsnames.ora会解决我的问题吗?如果是这样的话,为什么本地修改tnsnames.ora不改变我自己机器上的任何东西呢?在这种情况下,使用OraOLEDB不是可选的。另外,我没有使用Express,我使用的是11g Enterprise,我是否仍有权限进行设置?谢谢你的回复,但有一件事我不明白。如果它使用tnsnames.ora进行连接,那么在本地机器上修改该文件实际上并不会阻止我进行本地连接呢?我必须明确地告诉它使用它吗?