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.0, 4.5 |
スレッド安全性
パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。
例
// 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パブリック・メソッドを、表6-60にリストします。
OracleDataSourceEnumeratorパブリック・メソッド
OracleDataSourceEnumeratorパブリック・メソッドを、表6-61にリストします。
OracleDataSourceEnumeratorコンストラクタは、OracleDataSourceEnumeratorクラスの新規インスタンスを作成します。
宣言
// C# public OracleDataSourceEnumerator();
OracleDataSourceEnumerator静的メソッドを、表6-62にリストします。
表6-62 OracleDataSourceEnumeratorメソッド
| メソッド | 説明 |
|---|---|
|
|
このメソッドは、tnsnames.oraファイル内のTNS別名エントリおよびLDAPネーミングが有効化されている場合にldap.ora内で構成されているLDAPサーバーから取得されたエントリすべての情報が格納された、DataTableオブジェクトを返します。
宣言
// C# public override DataTable GetDataSources();
戻り値
DataTableオブジェクト。
備考
このメソッドは、tnsnames.oraファイル内に存在するTNS別名エントリごとに、およびLDAPサーバーから取得されたエントリごとにDataTableオブジェクトを返します。tnsnames.oraファイルが見つからず、LDAPネーミングも構成されていない場合は、返されるDataTableオブジェクトは空になります。
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はその変更を返しません。