プライマリ・コンテンツに移動
Oracle® Data Provider for .NET開発者ガイド
ODAC 12c リリース4 (12.1.0.2) for Microsoft Windows
E72575-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

OracleDataSourceEnumeratorクラス

OracleDataSourceEnumeratorオブジェクトは、アプリケーションが、接続するデータ・ソースのコレクションを一般的に取得できるようにします。

クラスの継承

System.Object

  System.DbDataSourceEnumerator

    Oracle.DataAccess.Client.OracleDataSourceEnumerator

宣言

// C#
public sealed class OracleDataSourceEnumerator : DbDataSourceEnumerator

要件

プロバイダ ODP.NET管理対象外ドライバ ODP.NET管理対象ドライバ
アセンブリ Oracle.DataAccess.dll Oracle.ManagedDataAccess.dll
ネームスペース Oracle.DataAccess.Client Oracle.ManagedDataAccess.Client
.NET Framework 3.5, 4.0, 4.5, 4.6 4.0, 4.5, 4.6

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

// C#
 
using System;
using System.Data;
using System.Data.Common;
using Oracle.DataAccess.Client;
 
class DataSourceEnumSample
{
  static void Main()
  {
    string ProviderName = "Oracle.DataAccess.Client";
 
    DbProviderFactory factory = DbProviderFactories.GetFactory(ProviderName);
 
    if (factory.CanCreateDataSourceEnumerator)
    {
      DbDataSourceEnumerator dsenum = factory.CreateDataSourceEnumerator();
      DataTable dt = dsenum.GetDataSources();
 
      // Print the first column/row entry in the DataTable
      Console.WriteLine(dt.Columns[0] + " : " + dt.Rows[0][0]);
      Console.WriteLine(dt.Columns[1] + " : " + dt.Rows[0][1]);
      Console.WriteLine(dt.Columns[2] + " : " + dt.Rows[0][2]);
      Console.WriteLine(dt.Columns[3] + " : " + dt.Rows[0][3]);
      Console.WriteLine(dt.Columns[4] + " : " + dt.Rows[0][4]);
    }
    else
      Console.Write("Data source enumeration is not supported by provider");
  }
}

OracleDataSourceEnumeratorメンバー

次の表に、OracleDataSourceEnumeratorメンバーを示します。

OracleDataSourceEnumeratorコンストラクタ

OracleDataSourceEnumeratorパブリック・メソッドを、表6-62にリストします。

表6-62 OracleDataSourceEnumeratorメソッド

メソッド 説明

OracleDataSourceEnumeratorコンストラクタ

OracleDataSourceEnumeratorクラスの新規インスタンスをインスタンス化します。


OracleDataSourceEnumeratorパブリック・メソッド

OracleDataSourceEnumeratorパブリック・メソッドを、表6-63にリストします。

表6-63 OracleDataSourceEnumeratorメソッド

メソッド 説明

GetDataSources

tnsnames.oraファイル内のTNS別名エントリおよびLDAPネーミングが有効化されている場合にldap.ora内で構成されているLDAPサーバーから取得されたエントリすべての情報が格納された、DataTableオブジェクトを返します。


OracleDataSourceEnumeratorコンストラクタ

OracleDataSourceEnumeratorコンストラクタは、OracleDataSourceEnumeratorクラスの新規インスタンスを作成します。

宣言

// C#
public OracleDataSourceEnumerator();

OracleDataSourceEnumeratorパブリック・メソッド

OracleDataSourceEnumerator静的メソッドを、表6-64にリストします。

表6-64 OracleDataSourceEnumeratorメソッド

メソッド 説明

GetDataSources

tnsnames.oraファイルにすべてのTNS別名エントリの情報を保持してDataTableオブジェクトを戻します。


GetDataSources

このメソッドは、tnsnames.oraファイル内のTNS別名エントリおよびLDAPネーミングが有効化されている場合にldap.ora内で構成されているLDAPサーバーから取得されたエントリすべての情報が格納された、DataTableオブジェクトを返します。

宣言

// C#
public override DataTable GetDataSources();
 

戻り値

DataTableオブジェクト。

備考

このメソッドは、tnsnames.oraファイル内に存在するTNS別名エントリごとに、およびLDAPサーバーから取得されたエントリごとにDataTableオブジェクトを返します。tnsnames.oraファイルが見つからず、LDAPネーミングも構成されていない場合は、返されるDataTableオブジェクトは空になります。

ODP.NET管理対象ドライバのこのメソッドは、すべてのデータ・ソース別名をOracle Internet DirectoryまたはMicrosoft Active DirectoryなどのLDAPサーバーからフェッチできます。ODP.NET管理対象外ドライバのこのメソッドは、LDAPサーバーからのデータ・ソース別名の取得をサポートしません。

Oracle Internet Directory (OID)がTNSネーミング・リポジトリに対して使用されているときは、取得されるTNSエントリの数は1000までという制限があります。

次の列は各行に対して戻されますが、InstanceName列のみに入力されています。

  • InstanceName(タイプ: System.String)

  • ServerName(タイプ: System.String)

  • ServiceName(タイプ: System.String)

  • Protocol(タイプ: System.String)

  • Port(タイプ: System.String)

プールされた既存の接続に対してTNSやLDAPの情報が変更されても、プールをクリアしないかぎり、呼出し側のGetDataSourcesはその変更を返しません。