65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 COSidHelper 类自动发现 Oracle TNS 服务名

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.20/5 (10投票s)

2003年9月6日

1分钟阅读

viewsIcon

72283

downloadIcon

949

一篇关于如何发现 Oracle TNS 服务名的文章。

Sample Image - OSidList.jpg

引言

本文介绍了一个类,它可以自动构建本地机器上定义的 Oracle TNS 服务名。

背景

我一直想知道如何以编程方式查明定义了多少个 Oracle 实例。使用 SQL*Plus,必须输入 Oracle 实例名称。在某些情况下,由于我们可能有大量的数据库,我们经常会出错。有一天,我决定编写一些代码来自动发现本地机器上定义的所有 Oracle 实例。所以,这就是 COSidHelper 类。

使用代码

这段代码非常易于使用,你只需将 SidHelper.hSidHelper.cpp 添加到你的项目中,然后在需要显示 Oracle TNS 服务名时,像这样构造该类的实例

COSidHelper osidHelper;
for( int nIndex =0; nIndex < osidHelper.m_strArray.GetSize(); nIndex++ )
{
    // ...
}

为了测试目的,我还添加了一个 Display() 方法。

关注点

  1. 检查目录是否存在。在较旧的 Oracle 客户端安装中,tnsnames.ora 位于 net80 下,在较新的版本中,它位于网络目录下。
  2. RegistryKey 操作。
  3. Oracle tnsnames.ora 文件结构的解析器。

历史

我很久以前为一款名为 PowerQuery 的软件编写了这个类。今天终于有时间与 CodeProject 社区分享它。你可以免费使用这个类。

© . All rights reserved.