開発者リファレンス : データ アクセス方法 : Data Providers for ADO.NET : サポートされる .NET オブジェクト
  
このページをシェアする                  
サポートされる .NET オブジェクト
.NET オブジェクトの使用
ADO.NET 2.0 は、アプリケーションおよびデータ ソース間のより汎用的な追加インターフェイスを提供する新しい一連のクラスを導入ました。
ADO.NET 2.0 より以前に使われていたものは、アプリケーションが使用するデータ プロバイダーのそれぞれの特定のインスタンスに、データ プロバイダーをより密接な要因の 1 つとして含めることを選択しました。それとは対照的に、ADO.NET2.0 以降は、アプリケーションが異種のデータ ソースのセットを単一の API で処理できるようにする、基本クラスのセットを提供します。これは、今日の ODBC および JDBC で利用されるものとよく似ています。つまり、ADO.NET2.0 以降では、すべてのデータ クラスは基本クラスから派生し、特定の専用名前空間である System.Data.Common に存在します。
データ プロバイダーでは、以下が使用できます。
.NET の基本クラス
データ プロバイダー固有のクラス
Zen Common Assembly
.NET の基本クラス
ADO.NET 1.0 および ADO.NET 1.1 データ プロバイダーのインターフェイスは、アプリケーションの互換性を維持するために構築されました。ADO.NET 2.0 以降の基本クラスは以下の追加機能を提供します。
DbCommand
DbCommandBuilder
DbConnection
DbDataAdaptor
DbDataReader
DBDataPermission
DbParameter
DbParameterCollection
DbConnectionStringBuilder
DbTransaction
日々のプログラミングという観点から、これらのクラスは抽象実装として提供されます。つまり、これらは直接インスタンス化できず、プロバイダー ファクトリで使用する必要があります。各データ プロバイダーは、DbFactory クラスから派生する一連の静的メソッドを含む PsqlFactory のような Factory クラスを提供する必要があります。これらの静的メソッドは、それぞれベース クラスのインスタンスを生成するファクトリ メソッドです。
これは、データ プロバイダーのインストール時に .NET Framework に登録されます。これにより、共通 .NET Framework DbFactory は、アプリケーションが必要とする登録済みデータ プロバイダーを見つけて、データ ソースへの接続を確立するための共通メカニズムを提供することができます。最終的に、.NET Framework は ADO.NET データ ソース用の完全に成熟した共通プログラミング API を提供します。
データ プロバイダー固有のクラス
ADO.NET データ プロバイダーは、すべての .NET パブリック オブジェクトをサポートしています。ADO.NET データ プロバイダーは、.NET のパブリック オブジェクトにプロバイダー固有のプレフィックス 「Psql 」を付けます(例:PsqlCommand)。
以下のオブジェクトについて説明します。
PsqlBulkCopy
PsqlBulkCopyColumnMapping
PsqlBulkCopyColumnMappingCollection
PsqlCommand オブジェクト
PsqlCommandBuilder オブジェクト
PsqlConnection オブジェクト
PsqlConnectionStringBuilder オブジェクト
PsqlCredential オブジェクト
PsqlDataAdapter オブジェクト
PsqlDataReader オブジェクト
PsqlError オブジェクト
PsqlErrorCollection オブジェクト
PsqlException オブジェクト
PsqlFactory オブジェクト
PsqlInfoMessageEventArgs オブジェクト
PsqlParameter オブジェクト
PsqlParameterCollection オブジェクト
PsqlTrace オブジェクト
PsqlTransaction オブジェクト
パブリック オブジェクトに関する詳細については、Microsoft .NET Framework Version 2.0 SDK のドキュメントを参照してください。
PsqlBulkCopy
PsqlBulkCopy オブジェクトは ADO.NET Bulk API に類似した API パターンを使用し、プロバイダー固有のプロパティやメソッドを持ちません。サポートされるプロパティおよびメソッドについては、データ プロバイダーのオンライン ヘルプおよび Microsoft .NET Framework SDK のドキュメントを参照してください。
PsqlBulkCopyColumnMapping
PsqlBulkCopyColumnMapping オブジェクトは ADO.NET Bulk API に類似した API パターンを使用し、プロバイダー固有のプロパティやメソッドを持ちません。サポートされるプロパティおよびメソッドについては、データ プロバイダーのオンライン ヘルプおよび Microsoft .NET Framework SDK のドキュメントを参照してください。
PsqlBulkCopyColumnMappingCollection
PsqlBulkCopyColumnMappingCollection オブジェクトは Microsoft SqlBulkCopyColumnMappingCollection クラスに類似した API パターンに従い、プロバイダー固有のプロパティやメソッドを持ちません。サポートされるプロパティおよびメソッドについては、データ プロバイダーのオンライン ヘルプおよび Microsoft .NET Framework SDK のドキュメントを参照してください。
PsqlCommand オブジェクト
28 では、PsqlCommand オブジェクトのパブリック プロパティについて説明します。
 
表 28 PsqlCommand オブジェクトのパブリック プロパティ
プロパティ
説明
AddRowID
ROWID を SQL ステートメント選択リストの一部として追加します。
True に設定した場合、PsqlCommandBuilder を使用する際には、より効率的な Insert、Delete、および Update コマンドを生成するために、ROWID に返された値が利用されます。
False(デフォルトの初期値)に設定すると、データ プロバイダーは ROWID 列を選択リストに追加しません。
ArrayBindCount
使用されるパラメーターの行数を指定します。アプリケーションでは、パラメーター配列バインドを使用するコマンドを実行する前にこのプロパティを設定しておく必要があります。この数はパラメーター値ごとに設定される各配列の長さと等しくなるようにしてください。
デフォルトの初期値は 0 です。アプリケーションはパラメーター配列バインドを使用しません。
ArrayBindStatus
行の状態値の配列を返します。このプロパティは、パラメーター配列バインドを使用するコマンドを実行した後、アプリケーションで行ごとの状態を調べることができるようにします。このプロパティの型は PsqlRowStatus の配列です。
パラメーター配列バインドは単独のアトミック操作として実行されます。つまり、操作が成功した場合はすべてのエントリに OK が設定されますが、失敗した場合にはどのエントリにも OK が設定されないということです。
PsqlRowStatus 列挙で設定可能な値は以下のとおりです。
OK。操作は正常に終了しました。エントリはすべて OK としてマークされます。
Failed。操作は失敗しました。データ プロバイダーでは、エラーが発生した行以外のすべてのステータス エントリにこの値を割り当てます。
SchemaViolation。操作が失敗した場合、データ プロバイダーはこの値をエラーが発生した行に割り当てます。
BindByName
ストアド プロシージャの実行時にデータ プロバイダーが名前付きパラメーターをどのように処理するかを指定します。アプリケーションは、ストアド プロシージャに対して名前付きパラメーターまたはパラメーターのデフォルト値を使用できます。
True に設定すると、データ プロバイダーは Zen サーバーへのパラメーター バインドに PsqlParameter オブジェクトで提供されるパラメーターの名前を使用します。CommandText の例を参照してください。
別の方法として、ユーザーは以下の方法のいずれかを使用して名前付きパラメーターのデフォルト値を指定することができます。
アプリケーションは名前付きパラメーターを使用してパラメーターをバインドしますが、アプリケーションがデフォルト値を使用したい PsqlParameterCollection には PsqlParameter オブジェクトを追加しません。
アプリケーションは PsqlParameter オブジェクトの Value プロパティをヌルに設定します。データ プロバイダーはこのパラメーターをサーバーに送信せず、ストアド プロシージャ実行時にパラメーターのデフォルト値を使用します。
BindByName を True に設定し、Parameter Mode 接続文字列オプションが BindByName または BindByOrdinal と定義されている場合、接続文字列に定義されたこれらの値は Command オブジェクトの存続期間中、無効にされます。
False(デフォルトの初期値)に設定すると、データ プロバイダーは PsqlParameter オブジェクトで提供されるパラメーターの名前を無視し、パラメーターが Create Procedure ステートメントで指定されたのと同じ順序であるものと仮定します。
CommandText
データ ソースで実行するテキスト コマンドを取得または設定します。
ストアド プロシージャを使う場合、CommandText にはそのストアド プロシージャの名前を設定します。たとえば次のようになります。
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "call EnrollStudent(!!Stud_id!!,!!Class_Id!!, !!GPA!!)";
cmd.BindByName = true;
PsqlParameter Class_Id = new PsqlParameter();
Class_Id.Value = 999;
Class_Id.ParameterName = "!!Class_Id!!";
PsqlParameter Stud_id = new PsqlParameter();
Stud_id.Value = 1234567890;
Stud_id.ParameterName = "!!Stud_id!!";
PsqlParameter GPA = new PsqlParameter();
GPA.Value = 3.2;
GPA.ParameterName = "!!GPA!!";
cmd.Parameters.Add(Class_Id);
cmd.Parameters.Add(Stud_id);
cmd.Parameters.Add(GPA);
CommandTimeout
コマンド実行の試行を終了し、エラーを生成するまでの待機時間を取得または設定します。
デフォルトの初期値は 30 秒です。
CommandTimeout プロパティは、サーバーで最大のデフォルトのタイムアウト値よりも大きな値に設定することをお勧めします。これによって、アプリケーションはタイムアウトした場合にもっと意味のある応答を得られるようになります。
CommandType
CommandText プロパティの解釈方法を指示または指定します。
ストアド プロシージャを使用するには、CommandType を StoredProcedure に設定します。
Connection
この IDbCommand のインスタンスで使用する IDbConnection を取得または設定します。
Parameters
PsqlParameterCollection を取得します。
RowSetSize
この Command オブジェクトで実行されるクエリによって返される行数を、実行時に指定される値までに制限します。Read-Write プロパティは符号付き整数です。
有効な値は 0 から 2147483647 です。
0(デフォルトの初期値)に設定すると、データ プロバイダーは返される行数を制限しません。
StatementCacheBehavior
ステートメント キャッシュの動作を取得する、または PsqlStatementCacheBehavior 列挙のいずれかの値のステートメント キャッシュ動作を設定します。詳細については、ステートメント キャッシングの有効化を参照してください。
Implicit(デフォルト)に設定すると、Statement Cache Mode 接続文字列オプションに Auto が設定され、ステートメント キャッシュは暗黙的に行われます。
Cache に設定し、Statement Cache Mode 接続文字列オプションを ExplicitOnly に設定すると、ステートメントは Cache がキャッシュされていると認識します。
DoNotCache に設定すると、ステートメント キャッシュは行われません。
Transaction
PsqlCommand オブジェクトを実行するトランザクションを取得または設定します。
UpdatedRowSource
DataAdapter の Update メソッドで DataRow が使用されたとき、コマンドの結果を DataRow に適用する方法を取得または設定します。
UpdateBatchSize プロパティに 1 以外の値が設定された場合は、UpdateCommand、DeleteCommand、および InsertCommand の UpdatedRowSource プロパティは None または OutputParameters に設定する必要があります。
None に設定すると、返されたパラメーターや行は無視されます。
OutputParameters に設定すると、出力パラメーターは DataSet の変更された行にマップされます。
29 では、PsqlCommand オブジェクトのパブリック メソッドについて説明します。
 
表 29 PsqlCommand オブジェクトのパブリック メソッド
メソッド
説明
Cancel
IDbCommand の実行のキャンセルを試みます。
CreateParameter
IDbDataParameter オブジェクトの新しいインスタンスを作成します。
Dispose
コンポーネントで使用したリソースを解放します。オーバーロードされます。
ExecuteNonQuery
PsqlConnection オブジェクトに対して SQL ステートメントを実行し、影響を受けた行数を返します。これは結果を返さないコマンドを対象としたメソッドです。
ExecuteReader
接続に対して CommandText を実行し、IDataReader を構築します。
ExecuteScalar
クエリを実行し、そのクエリが返す結果セットの最初の行の最初の列を返します。残りの行も列も無視されます。
Prepare
Zen のインスタンスに対する準備済みのコマンドを作成します。
メモ:Prepare メソッドは本リリースのデータ プロバイダーでは無効です。
PsqlCommandBuilder オブジェクト
PsqlCommandBuilder オブジェクトを使用すると、パフォーマンスに悪影響を及ぼす恐れがあります。同時実行が制限されるため、PsqlCommandBuilder では効率のよい SQL ステートメントを生成することができません。多くの場合、エンド ユーザーの方が、PsqlCommandBuilder オブジェクトで生成されるものより効率のよい Update ステートメントや Delete ステートメントを作成することができます。
30 では、PsqlCommandBuilder オブジェクトのパブリック プロパティについて説明します。
 
表 30 PsqlCommandBuilder オブジェクトのパブリック プロパティ
プロパティ
説明
DataAdapter
この PsqlCommandBuilder に関連付けられている PsqlDataAdapter オブジェクトを取得または設定します。
31 では、PsqlCommandBuilder オブジェクトのパブリック メソッドについて説明します。
 
表 31 PsqlCommandBuilder オブジェクトのパブリック メソッド
メソッド
説明
DeriveParameters
PsqlCommand で指定したストアド プロシージャのパラメーター情報を取得し、指定した PsqlCommand オブジェクトの Parameters コレクションにパラメーターを格納します。
GetDeleteCommand
アプリケーションが PsqlDataAdapter に対して Delete を呼び出したときに、データベースで削除処理を実行するための、自動生成された PsqlCommand オブジェクトを取得します。
GetInsertCommand
アプリケーションが PsqlDataAdapter に対して Insert を呼び出したときに、データベースで挿入処理を実行するための、自動生成された PsqlCommand オブジェクトを取得します。
GetUpdateCommand
アプリケーションが PsqlDataAdapter に対して Update を呼び出したときに、データベースで更新処理を実行するための、自動生成された PsqlCommand オブジェクトを取得します。
QuoteIdentifier
正しいカタログの中に引用符で囲まれていない識別子があると、その識別子の引用符で囲まれた正しい形式を返します。識別子内の埋め込み引用符もすべて適切にエスケープされます。
UnquoteIdentifier
引用符で囲まれた識別子があると、その識別子の引用符で囲まれていない正しい形式を返します。識別子内の埋め込み引用符のエスケープ処理も適切に除かれます。
PsqlConnection オブジェクト
32 では、PsqlConnection オブジェクトのパブリック コンストラクターについて説明します。
表 32 PsqlConnection オブジェクトのパブリック コンストラクター
プロパティ
説明
PsqlConnection()
PsqlConnection クラスの新しいインスタンスを初期化します。
PsqlConnection(string connectionString)
指定された接続文字列を含む文字列に対応する、PsqlConnection クラスの新しいインスタンスを初期化します。
PsqlConnection(string connectionString, PsqlCredential credential)
指定された接続文字列、およびユーザー ID とパスワードを含む PsqlCredential オブジェクトに対応する、PsqlConnection クラスの新しいインスタンスを初期化します。
33 では、PsqlConnection オブジェクトのパブリック プロパティについて説明します。いくつかのプロパティでは、対応する接続文字列オプションに指定された値を返します。接続文字列オプションとは異なり、PsqlConnection のプロパティ名にはスペースが含まれません。
 
表 33 PsqlConnection オブジェクトのパブリック プロパティ
プロパティ
説明
ConnectionString
データベースを開くために使用する文字列を取得または設定します。設定可能な値の説明については、表 35 を参照してください。
ConnectionTimeout
データ プロバイダーが接続の試行を中断してエラーを生成するまでの、接続の確立を待機する時間を取得または設定します。
ConnectTimeout プロパティまたは Connection Timeout 接続文字列オプションを使用すると、接続がタイムアウトするのを待つ時間を設定できます。
接続フェールオーバーが有効になっている(AlternateServers プロパティに代替データベース サーバーが 1 つ以上定義されている)場合は、代替サーバーへの接続の試行ごとにこのプロパティが適用されます。接続の再試行も有効になっている(Connection Retry Count 接続文字列オプションに 0 より大きい整数が設定されている)場合は、再試行ごとに ConnectionTimeout プロパティが適用されます。
Credential
Zen サーバーに接続するためのパスワードをより安全に指定する方法を提供します。PsqlCredential は、Zen サーバーへの接続に使用されるユーザー ID とパスワードで構成されます。パスワードを保持する SecureString オブジェクトは、読み取り専用とマークする必要があります。
Database
現在のデータベースの名前、または接続を開くときに使用するデータベースの名前を取得します。
Host
Host 接続文字列オプションに指定された値を返します。読み取り専用です。
Port
Port 接続文字列オプションに指定された値を返します。読み取り専用です。
ServerDSN
Server DSN 接続文字列オプションに指定された値を返します。読み取り専用です。
ServerName
Server Name 接続文字列オプションに指定された値を返します。読み取り専用です。
ServerVersion
このオブジェクトが現在接続している Zen サーバーのバージョンが示された文字列を返します。
PsqlConnection オブジェクトが現在接続されていない場合、データ プロバイダーでは InvalidOperation 例外を生成します。
State
現在の接続の状態を取得します。
StatisticsEnabled
統計情報の収集を有効にします。
True に設定すると、現在の接続に関する統計情報の収集が有効になります。
34 では、PsqlConnection オブジェクトのパブリック メソッドについて説明します。
 
表 34 PsqlConnection オブジェクトのパブリック メソッド
メソッド
説明
BeginTransaction
データベース トランザクションを開始します。
オーバーロードされた BeginTransaction(IsolationLevel) メソッドの使用時、データ プロバイダーでは ReadCommitted および Serializable 分離レベルが使用できます。詳細については、分離レベルを参照してください。
ChangeDatabase
開いている Connection オブジェクトの現在のデータベースを変更します。
ClearAllPools
データ プロバイダーの接続プールを空にします。
ClearPool
接続に関連付けられている接続プールを空にします。
呼び出し時、接続プールに関連付けられている追加の接続が使用中である場合、それらには適切なマーク付けがされ、Close を呼び出した時点で破棄されます。
Close
データベースへの接続を閉じます。
CreateCommand
PsqlConnection に関連付けられている PsqlCommand オブジェクトを作成し、返します。
Dispose
PsqlConnection オブジェクトで使用したリソースを解放します。
Open
PsqlConnection オブジェクトの ConnectionString プロパティで指定した設定を使用して、データベース接続を開きます。
ResetStatistics
接続上の現在の統計収集セッションのすべての値をゼロにリセットします。
接続が閉じられて接続プールに戻ると、統計情報収集はオフに切り替えられてカウントがリセットされます。
RetrieveStatistics
統計情報収集が有効になっている接続の一連の統計情報を取得します。返される "名前=値" の組み合わせは、このメソッドが呼び出された時点の接続状態のスナップショットを形成します。
PsqlConnection オブジェクトの InfoMessage イベントを使用すると、データベースから警告や情報メッセージを取得することができます。データベースからエラーが返される場合は、例外が発生します。データベース サーバーから送られる警告や情報メッセージを処理したいクライアントは、PsqlInfoMessageEventHandler デリゲートを作成してこのイベントに登録してください。
InfoMessage イベントでは、このイベントに関するデータを含む PsqlInfoMessageEventArgs の引数を受け取ります。
PsqlConnectionStringBuilder オブジェクト
PsqlConnectionStringBuilder プロパティ名は、PsqlConnection.ConnectionString プロパティの接続文字列オプション名と同じです。ただし、接続文字列オプション名は単語の間にスペースを入れることができます。たとえば、接続文字列オプション Min Pool Size はプロパティ名 MinPoolSize に相当します。
接続文字列の基本形式は、セミコロンで区切られた一連の「キーワード/値」のペアを含んでいます。次に、ADO.NET データ プロバイダー用の単純な接続文字列のキーワードと値の例を示します。
"Server DSN=SERVERDEMO;Host=localhost"
35 では、Zen データ プロバイダーでサポートされる接続文字列オプションに対応するプロパティを挙げ、各プロパティについて説明します。
 
表 35 接続文字列プロパティ
プロパティ
説明
AlternateServers
プライマリ データベース サーバーが使用不可能な場合、データ プロバイダーが接続を試みる代替データベース サーバーの一覧を指定します。この接続文字列オプションに値を指定すると、データ プロバイダーに対して接続フェールオーバー機能が有効になります。
この値は、代替サーバーごとに接続情報を定義する文字列の形式で指定する必要があります。デフォルトのポート値 1583 を使用しない場合は、各代替サーバーの名前または IP アドレスと、ポート番号を指定する必要があります。文字列は次のような形式です。
"Host=ホスト値;Port=ポート値[, ...]"
たとえば、Alternate Servers 値を次のように指定すると、接続フェールオーバー用に 2 つの代替サーバーが定義されます。
Alternate Servers="Host=AcctServer;Port=1584, Host=123.456.78.90;Port=1584"
接続フェールオーバーの説明やこの機能で設定できるその他の接続文字列オプションに関する情報については、接続フェールオーバーの使用を参照してください。
ConnectionPoolBehavior
{LeastRecentlyUsed | MostRecentlyUsed | LeastFrequentlyUsed | MostFrequentlyUsed}。再使用するための接続プールからどのような順序で接続を削除するのかを、接続の使用頻度または使用時期に基づいて指定します。
MostRecentlyUsed に設定すると、データ プロバイダーは後入れ先出し法(LIFO)を用いて、最近プールに戻された接続を返します。
LeastRecentlyUsed(デフォルトの初期値)に設定すると、データ プロバイダーは先入れ先出し法(FIFO)を用いて、一番長く接続プールに置かれている接続を返します。この値は、プール内の接続をバランスよく使用できるようにします。
MostFrequentlyUsed に設定すると、データ プロバイダーは最も使用回数の高い接続を返します。この値は、アプリケーションが一番よく使い込んだ接続を優先的に扱うことができるようにします。
LeastFrequentlyUsed に設定すると、データ プロバイダーは最も使用回数の低い接続を返します。この値は、プール内の接続をバランスよく使用できるようにします。
ConnectionReset
{True | False}。アプリケーションで再使用するための接続プールから接続を削除する場合、その状態を接続の初期設定状態にリセットするかどうかを指定します。状態をリセットすると、パフォーマンスは低下します。これは、新しい接続では、接続時に指定した値に現在のデータベースをセットし直すなど、サーバーに対して余分なコマンドを発行する必要が生じるためです。
False(デフォルトの初期値)に設定すると、データ プロバイダーは接続の状態をリセットしません。
ConnectionRetryCount
データ プロバイダーがプライマリ サーバーへの接続を試行し、その初期接続が失敗した後に代替サーバーへの接続を試行する回数を指定します。
値は、0 から 65535 までの任意の整数を指定できます。
0(デフォルトの初期値)に設定すると、データ プロバイダーは、初期接続の試行に失敗した後に再接続を試行しません。
接続を再試行している間に接続が成功しなかった場合、データ プロバイダーは、接続を試行した最後のサーバーで生成されたエラーを返します。
このオプションと試行間隔を指定する Connection Retry Delay オプションは、接続フェールオーバーに関して使用することができます。接続フェールオーバーの説明やこの機能で設定できるその他の接続文字列オプションに関する情報については、接続フェールオーバーの使用を参照してください。
ConnectionRetryDelay
初期接続の試行に失敗した後、プライマリ サーバーまたは(指定した場合には)代替サーバーへの接続を再試行するまでの試行間隔を秒数で指定します。
値は、0 から 65535 までの任意の整数を指定できます。
デフォルトの初期値は 3(秒)です。0 に設定すると、接続の再試行に待ち時間はありません。
メモ:このオプションは、Connection Retry Count 接続文字列オプションを 0 に設定している場合は作用しません。
このオプションと、データ プロバイダーが最初の接続の試行に失敗した後に接続を試行する回数を指定する Connection Retry Count 接続文字列オプションは、接続フェールオーバーに関して使用することができます。接続フェールオーバーの説明やこの機能で設定できるその他の接続文字列オプションに関する情報については、接続フェールオーバーの使用を参照してください。
ConnectionTimeout
サーバーへの接続の試行が失敗した後、接続されないでいる間の秒数を指定します。接続フェールオーバーが有効になっている場合、このオプションは接続の試行ごとに適用されます。
0 に設定すると、データ プロバイダーが接続の試行でタイムアウトすることはありません。
デフォルトの初期値は 15 秒です。
DatabaseName
接続するデータベースの内部名を指定します。ServerDSN が定義されていない Zen データ ソースに接続する必要がある場合は、このオプションを使用します。
デフォルト値は空文字列です。
メモ:1 つの接続文字列に Database Name と Server DSN 接続文字列オプションを混在させることはできません。
別名:DBQ
DbFileDirectoryPath
メモ:このオプションは、Zen ADO.NET Entity Framework Core データ プロバイダーでのみサポートされます。
データベース サーバーのどのディレクトリでデータベース ファイルが作成されたかを判断します。
デフォルト値は空文字列です。
EnableIPV6
IPv4 アドレスを使用した Zen サーバーへの接続に対応する下位互換性を提供します。
True に設定すると、IPv4 アドレスまたは IPv6 アドレスのいずれかを使用するサーバーに対し、インストール済みの IPv6 プロトコルに対応したクライアントを識別させることができます。
False に設定すると、クライアントは下位互換性モードで実行します。クライアントはいつでも IPv4 アドレスを使用するサーバーに識別されます。
デフォルト値は、4.0 では True に設定されます。
IPv6 形式の詳細については、『Getting Started with Zen』の IPv6 を参照してください。
EnableTrace
{0 | 1}。トレースを有効にするかどうかを指定します。
0(デフォルトの初期値)に設定すると、トレースは有効になりません。
Encoding
データベースに格納されている文字列データの変換に使用する、IANA 名または Windows コード ページを指定します。
デフォルト値は空文字列で、現在の Windows Active Code Page(ACP)が使用されます。
Encrypt
{If Needed | Always | Never}。データ プロバイダーが暗号化されたネットワーク通信(ワイヤ暗号化とも呼ばれます)を使用するかどうかを決定します。
Always に設定すると、データ プロバイダーは暗号化を使用します。サーバーでワイヤ暗号化が許可されない場合はエラーが返されます。
Never に設定すると、データ プロバイダーは暗号化を使用しません。サーバーでワイヤ暗号化を要求された場合はエラーが返されます。
IfNeeded(デフォルト)に設定すると、データ プロバイダーはサーバーのデフォルト設定を使用します。
メモ:このオプションは、データの暗号化と復号で必要となる追加オーバーヘッド(主に CPU 使用)のため、パフォーマンスに悪影響を与えることがあります。
Encryption
{Low | Medium | High}。データ プロバイダーが許可する暗号化の最低レベルを決定します。
デフォルトの初期値は Medium(中)です。
これらの値の意味は使用する暗号化モジュールに応じて変わります。デフォルトの暗号化モジュールでは、これらの値はそれぞれ 40 ビット、56 ビット、および 128 ビット暗号化に対応しています。
Enlist
{True | False}。スレッドの現在のトランザクション コンテキストの作成中に、データ プロバイダーが接続への参加を自動的に試行するかどうかを指定します。
メモ:Zen は分散トランザクションをサポートしないため、スレッドの現在のトランザクション コンテキストでの接続への参加試行は失敗します。
False に設定すると、データ プロバイダーは接続への自動的な参加試行を行いません。
True(デフォルトの初期値)に設定すると、現在のトランザクション コンテキストが存在する場合にデータ プロバイダーはエラーを返します。現在のトランザクション コンテキストが存在しない場合、データ プロバイダーは警告を発します。
Host
接続する Zen データベース サーバーの名前または IP アドレスを指定します。たとえば、Accountingserver などのサーバー名を指定できます。あるいは、199.226.22.34(IPv4)または 1234:5678:0000:0000:0000:0000:9abc:def0(IPv6)などの IP アドレスを指定できます。
デフォルトの初期値は空文字列です。
別名:Server、Server Name
InitialCommandTimeout
データ プロバイダーが実行の試行を終了してエラーを生成するまでのデフォルトの待機時間(秒単位のタイムアウト)を指定します。このオプションは、アプリケーションのコードに変更を加えることなく、PsqlCommand オブジェクトの CommandTimeout プロパティと同じ機能を提供します。その後、アプリケーションは CommandTimeout プロパティを使用して Initial Command Timeout 接続文字列オプションを上書きすることができます。
デフォルトの初期値は 30 です。0 に設定すると、クエリは絶対タイムアウトしません。
たとえば、次の C# コード例では、接続文字列はコマンドの実行試行を終了するまでに 60 秒待機するよう指示しています。アプリケーションは、次に、45 秒の CommandTimeout を指定し、接続文字列で指定した値を上書きします。
PsqlCommand command = new PsqlCommand();
PsqlConnection conn = new PsqlConnection("…; Initial Command Timeout=60; …");
conn .Open();
command.Connection = connection;
// command.CommandTimeout は 60 を返します
command.CommandTimeout = 45;
// command.CommandTimeout は 45 を返します
command = new PsqlCommand();
command.CommandTimeout = 45;
command.Connection = conn;
// command.CommandTimeout は、依然として 45 を返します
メモ:CommandTimeout オプションの初期値は、サーバーのデッドロック検出およびタイムアウトの最大値より大きい値に設定します。これによって、アプリケーションはタイムアウトした場合により意味のある応答を受け取ることができます。
InitializationString
セッションの設定を管理するために、データベースへの接続後直ちに発行されるステートメントを指定します。
デフォルトの初期値は空文字列です。
例:NULL で埋められた CHAR 列を処理するには、次のように値を設定します。
Initialization String=SET ANSI_PADDING ON
メモ:何らかの理由でステートメントが失敗した場合、Zen サーバーへの接続は失敗します。データ プロバイダーは、サーバーから返されたエラーを含む例外をスローします。
LoadBalanceTimeout
接続プールで接続を保持する秒数を指定します。接続プール マネージャーは定期的にすべてのプールをチェックし、その存続時間を超過した接続を閉じたり排除します。MinPoolSize オプションの指定によって、一部の接続でこの値を無視させることができます。接続の存続時間については、プールからの接続の削除を参照してください。
値は、0 から 65335 までの任意の整数を指定できます。
0(デフォルトの初期値)に設定すると、接続のタイムアウトは上限値になります。
別名:Connection Lifetime
LoadBalancing
{True | False}。データ プロバイダーがプライマリ データベース サーバーや代替データベース サーバーへの接続において、クライアント ロード バランスを使用するかどうかを決定します。代替サーバーのリストは Alternate Servers 接続オプションで指定されます。
True に設定すると、データ プロバイダーはランダムな順序でデータベース サーバーに接続しようとします。ロード バランスに関する詳細については、クライアント ロード バランスの使用を参照してください。
False(デフォルトの初期値)に設定すると、クライアント ロード バランスは使用されず、データ プロバイダーはシーケンシャル(最初にプライマリ サーバー、次に代替サーバーの指定された順)に各サーバーへ接続します。
メモ:このオプションは、Alternate Servers 接続文字列オプションで代替サーバーが指定されていなければ作用しません。
Load Balancing 接続文字列オプションは、接続フェールオーバーに関して使用することができる任意の設定です。接続フェールオーバーの説明やこの機能で設定できるその他の接続文字列オプションに関する情報については、接続フェールオーバーの使用を参照してください。
MaxPoolSize
1 つのプール内の最大接続数を指定します。最大数に達したら、それ以上の接続を接続プールに追加することはできません。Max Pool Size Behavior 接続文字列オプションの指定によって、一部の接続でこの値を一時的に無視させることができます。
値は、1 から 65335 までの任意の整数を指定できます。
デフォルトの初期値は 100 です。
MaxPoolSizeBehavior
{SoftCap | HardCap}。接続プール内のすべての接続が使用中である場合、データ プロバイダーは Max Pool Size オプションで指定された接続数を超えることができるかどうかを指定します。
SoftCap に設定した場合、作成される接続数は Max Pool Size に設定された値を超えることはできますが、プールされる接続数は設定値を超えません。プールの最大接続数が使用されているときに接続要求を受け取った場合、データ プロバイダーは新しい接続を作成します。アイドル状態の接続が入った満杯のプールに接続が返された場合、プール メカニズムは接続プールが Max Pool Size を決して超えないよう、破棄する接続を選択します。
HardCap(デフォルトの初期値)に設定した場合、プールに許可されている最大接続数が使用中であるときは、新しい接続要求は Connection Timeout に達するまで、接続が使用可能になるのを待ちます。
MaxStatementCacheSize
ステートメント キャッシュに保持できるステートメントの最大数を指定します。この値には 0、または 1 以上の整数を指定できます。
キャッシュ サイズを 0 に設定すると、ステートメント キャッシングを無効にします。
デフォルトの初期値は 10 です。
ほとんどの場合、ステートメント キャッシングを使用するとパフォーマンスが向上します。このオプションがパフォーマンスに与える影響については、お使いのデータ プロバイダーの「パフォーマンスに関する考慮点」トピックを参照してください。
MinPoolSize
接続プールが初期化されたときに作成される接続数、およびそのプールに保持される接続数を指定します。接続プール内の一部の接続が LoadBalanceTimeout 値を超えたとしても、接続プールにはこの最小数の接続が保持されます。
値は、0 から 65335 までの任意の整数を指定できます。
0(デフォルトの初期値)に設定した場合、接続が閉じられて接続プールに送られても、プールには、そのプールの作成に使用された元の接続のみが保持されます。
1 から 65535 までの整数に設定すると、指定された数の接続の複製がプールに保持されます。
プールがパフォーマンスに与える影響については、お使いのデータ プロバイダーの「パフォーマンスに関する考慮点」トピックを参照してください。
ParameterMode
ネイティブ パラメーター マーカーおよびバインディングの動作を指定します。これにより、アプリケーションはプロバイダー固有の SQL コードを再利用でき、Zen ADO.NET データ プロバイダーへの移行を容易にすることができます。
ANSI(デフォルトの初期値)に設定すると、? 文字はパラメーター マーカーとして処理され、序数としてバインドされます。アプリケーションは BindByName プロパティの動作をコマンド単位で切り替えられます。
BindByOrdinal に設定した場合、ネイティブ パラメーター マーカーが使用され、ストアド プロシージャおよび標準コマンド用に序数としてバインドされます。
BindByName に設定した場合、ネイティブ パラメーター マーカーが使用され、ストアド プロシージャおよび標準コマンド用に名前でバインドされます。
メモ:このオプションは、Zen ADO.NET Entity Framework データ プロバイダーではサポートされません。
Password
Zen データベースへの接続に使用するパスワード(大文字小文字の区別なし)を指定します。パスワードは、データベースでセキュリティが有効な場合にのみ必要です。パスワードが必要な場合は、システム管理者からパスワードを入手してください。
別名:PWD
PersistSecurityInfo
{True | False}。セキュリティ情報を ConnectionString プロパティにクリア テキストで表示するかどうかを指定します。
True に設定すると、Password 接続文字列オプションの値はクリア テキストで表示されます。
False(デフォルトの初期値)に設定すると、データ プロバイダーは接続文字列にパスワードを表示しません。
Pooling
{True | False}。接続をプールするかどうかを指定します。接続プールに関する詳細については、接続プールの使用を参照してください。
True(デフォルトの初期値)に設定すると、接続プールが有効になります。
プールがパフォーマンスに与える影響については、お使いのデータ プロバイダーの「パフォーマンスに関する考慮点」トピックを参照してください。
Port
Zen データベースで動作しているリスナーの TCP ポートを指定します。
デフォルトのポート番号は 1583 です。
PVTranslate
{Auto | Nothing}。クライアントが、サーバーと適合するエンコードをネゴシエイトするかどうかを指定します。
Auto に設定すると、データ プロバイダーは Encoding 接続プロパティをデータベースのコード ページに設定します。また、SQL クエリ テキストは、データ エンコードではなく UTF-8 エンコードを使用して送信されます。これにより、クエリ テキスト内の NCHAR 文字列リテラルが保持されます。
Nothing(デフォルト)に設定すると、Encoding 接続プロパティの設定が使用されます。
SchemaCollectionTimeout
試行したスキーマ コレクション操作が失敗した後、完了されないでいる間の秒数を指定します。
0 に設定すると、データ プロバイダーがスキーマ コレクション操作の試行でタイムアウトすることはありません。
デフォルトの初期値は 120 です。
SchemaOptions
返すことができる追加のデータベース メタデータを指定します。デフォルトで、データ プロバイダーは、パフォーマンスに悪影響を与えるデータベース メタデータの一部が返らないようにすることで、パフォーマンスを最適化しています。アプリケーションでこのようなデータベース メタデータを必要とする場合は、メタデータの名前または 16 進値を指定します。
このオプションはパフォーマンスに影響することがあります。
データ プロバイダーが追加できるデータベース メタデータの名前および 16 進値については、表 36 を参照してください。
ShowColumnDefaults または 0x04 に設定すると、列のデフォルトが返されます。
ShowParameterDefaults または 0x08 に設定すると、列のデフォルトが返されます。
FixParameterDirections または 0x10 に設定すると、プロシージャ定義が返されます。
ShowProcedureDefinitions または 0x20 に設定すると、プロシージャ定義が返されます。
ShowViewDefinitions または 0x40 に設定すると、ビュー定義が返されます。
ShowAll または 0xFFFFFFFF(デフォルトの初期値)に設定すると、すべてのデータベース メタデータが返されます。
たとえば、プロシージャ定義の説明を返すには Options=ShowProcedureDefinitions または Schema Options=0x20 を指定します。
複数の除外されたメタデータを表示するには、名前をカンマ区切りのリストで指定するか、制限したい列コレクションの 16 進値の合計を指定します。たとえば、プロシージャ定義とビュー定義(それぞれ 16 進値で 0x20 と 0x40)を返すには、Schema Options=ShowProcedureDefinitions, ShowViewDefinitions または Schema Options=0x60 と指定します。
メモ:この接続文字列オプションはパフォーマンスに悪影響を与えることがあります。詳細については、お使いのデータ プロバイダーのパフォーマンスに関する考慮点のドキュメントを参照してください。
ServerDSN
サーバー上のデータ ソースの名前、たとえば Server DSN=SERVERDEMO を指定します。
デフォルト値は DEMODATA です。
メモ:1 つの接続文字列に Database Name と Server DSN 接続文字列オプションを混在させることはできません。
StatementCacheMode
ステートメント キャッシュ モードを指定します。Statement Cache Mode はステートメントのキャッシュ動作を制御します。ステートメントは自動的にキャッシュされるか、またはコマンドが明示的にマークした場合にのみキャッシュされます。
Auto に設定すると、ステートメント キャッシングは PsqlCommand プロパティの StatementCacheBehavior に暗黙的にマークされたステートメントに対して有効になります。これらのコマンドは明示的にマークされたコマンドより低い優先順位を持ちます。つまり、ステートメント プールが最大ステートメント数に達した場合、Cache とマークされたステートメント用の余地を作るため、Implicit とマークされたステートメントが最初に削除されます。
ExplicitOnly(デフォルトの初期値)に設定すると、StatementCacheBehavior によって Cache とマークされたステートメントのみがキャッシュされます。
ほとんどの場合、ステートメント キャッシングを有効にするとパフォーマンスが向上します。このオプションが ADO.NET データ プロバイダーのパフォーマンスに与える影響については、パフォーマンスに関する考慮点を参照してください。
メモ:このオプションは、Zen ADO.NET Entity Framework データ プロバイダーではサポートされません。
Timestamp
{DateTime | String}。データ プロバイダーで、Zen のタイムスタンプを文字列として格納および取得するかどうかを指定します。
DateTime に設定するか、または定義しない(デフォルト)と、データ プロバイダーはタイムスタンプを .NET DateTime 型にマップします。この設定はネイティブな精度が必要な場合、たとえば、タイムスタンプを含む PsqlCommandBuilder を使用する場合に適しています。
String に設定すると、タイムスタンプは文字列として返されます。データ プロバイダーは、Zen タイムスタンプを .NET String 型にマップします。
TimeType
{DateTime | TimeSpan}。Zen の Time を ADO.NET データ プロバイダーの Timespan または DateTime として取得するかどうかを指定します。
DateTime に設定すると、データ プロバイダーは SQL の TIME 型を .NET の System.DateTime 型にマップします。
TimeSpan に設定すると、データ プロバイダーは SQL の TIME 型を .NET の System.DateTimeSpan 型にマップします。
TraceFile
トレース ファイルのパスと名前を指定します。
デフォルトの初期値は空文字列です。指定したファイルが存在しない場合は、データ プロバイダーがファイルを作成します。
UseCurrentSchema
この接続文字列オプションはサポートされていません。これを設定すると、データ プロバイダーは例外をスローします。
UserID
Zen データベースへの接続に使用するデフォルトの Zen ユーザー名を指定します。
別名:UID
36 に、データ プロバイダーが、返すデータから除外する列コレクションの名前と 16 進値を挙げます。複数の値を指定するには、名前をカンマ区切りのリストで指定するか、返したい列コレクションの 16 進値の合計を指定します。
 
表 36 Zen 列コレクション
名前
16 進数の値
コレクション/列
ShowColumnDefaults1
0x04
Columns/COLUMN_DEFAULT
ShowParameterDefaults
0x08
ProcedureColumns//PARAMETER_DEFAULT
FixParameterDirections
0x10
ProcedureColumns/PARAMETER_TYPE
ShowProcedureDefinitions
0x20
Procedures/PROCEDURE_DEFINITION
ShowViewDefinitions
0x40
Views/VIEW_DEFINITION
ShowAll
0x7F
All
1 COLUMN_HAS_DEFAULT は常にヌル値を返します。
PsqlConnectionStringBuilder オブジェクトにはプロバイダー固有のメソッドはありません。サポートされるメソッドの情報については、データ プロバイダーのオンライン ヘルプおよび Microsoft .NET Framework SDK ドキュメントを参照してください。
PsqlCredential オブジェクト
PsqlCredential オブジェクトは、Zen サーバー認証を使用して安全にログインする方法を提供します。PsqlCredential は、Zen サーバーによって認識されるユーザー ID とパスワードで構成されます。
PsqlCredential オブジェクトのパスワードは、接続文字列とは違って SecureString 型です。接続文字列のパスワードは、プロバイダーが読み取って SecureString に変換しない限り、セキュリティで保護されていません。パスワードは、メモリに書き込まずに安全な方法で処理されます。パスワードに格納する文字列は、使用後に消去されます。
メモ:PsqlCredential は、ユーザー ID とパスワードが必要な認証方法の場合にのみ使用してください。また、Kerberos 認証またはクライアント認証を使用している場合は、PsqlCredential を使用しないでください。最後に、PsqlCredential オブジェクトを使用する場合は、接続文字列にユーザー ID とパスワードを含めないでください。
次のコード スニペットは、PsqlCredential クラスを使用する方法を示しています。この例で文字列から SecureString への変換に使用されている方法は、考えられる多くの方法のうちの 1 つです。
PsqlConnection con = null;
PsqlCredential lobjCredential = null;
string userId = "ABCD";
SecureString password = ConvertToSecureString("XYXYX");
private static SecureString ConvertToSecureString(string value)
{
   var securePassword = new SecureString();
   foreach (char c in value.ToCharArray())
   securePassword.AppendChar(c);
   securePassword.MakeReadOnly();
   return securePassword;
}
try
{
   lobjCredential = new PsqlCredential(userId, password);
   con = new PsqlConnection("Host=nc-xxx;Port=xxxx;Database Name=xxxx"",
      lobjCredential);
   con.Open();
   Console.WriteLine("Connection Successfully Opened...");
   con.Close();
}
catch (Exception e)
{
   Console.Write(e.Message)
}
finally
{
   if (null != con)
   {
      con.Close();
      con = null;
   }
   if (null != lobjCredential)
   {
      lobjCredential = null;
   }
}
次の表では、PsqlCredential オブジェクトのプロバイダー固有のパブリック プロパティの実装について説明します。
表 37 PsqlCredential オブジェクトのパブリック プロパティ
プロパティ
説明
User ID
PsqlCredential オブジェクトのユーザー ID 構成要素を返します。
String データ型を使用します。ヌルまたは空の値は無効です。
Password
PsqlCredential オブジェクトのパスワード構成要素を返します。
SecureString データ型を使用します。ヌルは無効な値です。
接続が開いているときに PsqlCredential オブジェクトを使用して、プールされている同じ接続を使用したい場合は、使用可能な接続プールから同じ接続が取得されるよう、同じ PsqlCredential オブジェクトを参照する必要があります。
接続ごとに新しい資格情報オブジェクトを作成する場合、ドライバーはオブジェクトを個別に扱い、同じユーザー ID とパスワードが使用されている場合でも、それらを異なる接続プールに入れます。
PsqlDataAdapter オブジェクト
PsqlDataAdapter オブジェクトは PsqlCommand オブジェクトを使って Zen データベースに対して SQL コマンドを実行し、取得したデータを DataSet に読み込んだり、DataSet で変更されたデータをデータベースと照合したりします。
38 では、PsqlDataAdapter オブジェクトのパブリック プロパティについて説明します。
 
表 38 PsqlDataAdapter オブジェクトのパブリック プロパティ
プロパティ
説明
UpdateBatchSize
バッチで実行可能なコマンド数を指定する値を取得または設定します。
アプリケーションで切断された DataSet を使用してこれらの DataSet を更新する場合、このプロパティの値を 1 より大きく設定することにより、積極的にパフォーマンスを操作することができます。デフォルトでは、データ プロバイダーは利用可能な最大バッチ サイズの使用を試みます。ただし、これがアプリケーションでの最適なパフォーマンスに一致するとは限りません。DataSet で通常更新する行数に基づいて値を設定します。たとえば、50 未満の行を更新する場合、このプロパティの推奨設定は 25 です。
0 に設定すると、PsqlDataAdapter はデータ ソースで利用可能な最大バッチ サイズを使用します。InsertCommand、UpdateCommand、および DeleteCommand の UpdatedRowSource プロパティは、None または OutputParameters に設定する必要があります。
1 に設定すると、バッチ更新は無効になります。
1 より大きい値に設定すると、バッチ内で指定した数のコマンドが実行されます。InsertCommand、UpdateCommand、および DeleteCommand の UpdatedRowSource プロパティは、None または OutputParameters に設定する必要があります。
DeleteCommand
Zen データ ソースからレコードを削除するための SQL ステートメントを取得または設定します。
InsertCommand
Zen データ ソースに新しいレコードを挿入するための SQL ステートメントを取得または設定します。
SelectCommand
Zen データベースのレコードを選択するための SQL ステートメントを取得または設定します。
UpdateCommand
データ ソースのレコードを更新するための SQL ステートメントを取得または設定します。
PsqlDataReader オブジェクト
PsqlDataReader オブジェクトは、データベースから読み取り専用のレコードを取得する前方スクロール カーソルです。PsqlDataAdapter を使用するよりもパフォーマンスは高くなりますが、結果セットは変更できません。
39 では、PsqlDataReader オブジェクトのパブリック プロパティについて説明します。
 
表 39 PsqlDataReader オブジェクトのパブリック プロパティ
プロパティ
説明
Depth
現在の行の入れ子の深さを示す値を取得します。
HasRows
この PsqlDataReader に 1 行以上の行が格納されているかどうかを示す値を取得します。
IsClosed
データ リーダーが閉じているかどうかを示す値を取得します。
RecordsAffected
SQL ステートメントの実行によって変更、挿入または削除された行数を取得します。
40 では、PsqlDataReader オブジェクトのパブリック メソッドの一部について説明します。
 
表 40 PsqlDataReader オブジェクトでサポートされるメソッド
メソッド
説明
Close
DataReader を閉じます。DataReader オブジェクトの使用を終了するときは必ず Close メソッドを呼び出してください。
GetSchemaTable
PsqlDataReader の列メタデータを記述する DataTable を返します。詳細については、表 58 を参照してください。
NextResult
バッチ SQL ステートメントの結果を読み込むときに、データ リーダーを次の結果に進めます。
Read
IDataReader を次の結果に進めます。
PsqlError オブジェクト
PsqlError オブジェクトは、Zen サーバーで生成されたエラーや警告に関する情報を収集します。
41 では、PsqlError オブジェクトのパブリック プロパティについて説明します。
 
表 41 PsqlError オブジェクトのパブリック プロパティ
プロパティ
説明
Message
Zen サーバーから返されるエラー メッセージ テキストを取得します。
Number
Zen から返されるエラー番号を取得します。
SQLState
Zen データ プロバイダーが例外をスローしたときに SQLState の文字列表記を取得します。例外に対応するエラーがない場合は 0 です。このプロパティは読み取り専用です。
メモ:SQLstate 情報が何もない ADO.NET クライアントのエラー メッセージについては、S1000 がデフォルトの SQLState として使用されます。
PsqlErrorCollection オブジェクト
PsqlErrorCollection オブジェクトは、PsqlException によって作成され、Zen サーバーによって生成されたすべてのエラーを格納します。
42 では、PsqlErrorCollection オブジェクトでサポートされるプロバイダー固有のパブリック プロパティについて説明します。サポートされるその他のプロパティおよびメソッドの情報については、データ プロバイダーのオンライン ヘルプおよび Microsoft .NET Framework SDK ドキュメントを参照してください。
 
表 42 PsqlErrorCollection オブジェクトのパブリック プロパティ
プロパティ
説明
Count
Zen サーバーで生成される PsqlError オブジェクトの数を取得します。
43 では、PsqlErrorCollection オブジェクトのパブリック メソッドについて説明します。
 
表 43 PsqlErrorCollection オブジェクトのパブリック メソッド
メソッド
説明
CopyTo
PsqlError オブジェクトを ErrorCollection から指定した配列にコピーします。
GetEnumerator
指定した配列の IEnumerator インターフェイスを返します。
PsqlException オブジェクト
プロバイダー固有の例外は System.Data interface インターフェイスから直接派生します。System.Exception オブジェクト全般で直接使用できるのは、Message プロパティなどのパブリック プロパティおよびメソッドのみです。SQLState および Number プロパティは、プロバイダー固有のコードを介して、または参照を使用してのみアクセスできます。
ADO.NET 2.0 は、DbException クラスに新しいプロパティ Data を導入しました。このプロパティは、例外に関する追加のユーザー定義情報を提供する、キーと値の組のコレクションを返します。ADO.NET データ プロバイダーは、SQLState、Number、および ErrorPosition などのキー/値ペアのコレクションを取得します。
Psql.Data.SqlClient プレフィックスは各キーに適用されます。たとえば、次のようになります。
Psql.Data.SqlClient.Data["SQLState"] = 28000;
複数のエラーが存在する場合、表 44 で説明しているプロパティは最後に生成されたエラーに対して適用されます。複数のエラーが発生したかどうかを判断するには、このオブジェクトの Errors プロパティで返される PsqlErrorCollection の Count プロパティをチェックします。詳細については、PsqlErrorCollection オブジェクトを参照してください。
 
表 44 PsqlException オブジェクトのパブリック プロパティ
プロパティ
説明
Errors
PsqlError オブジェクトのうち 1 つの PsqlErrorCollection を取得または設定します。
Message
Zen サーバーから返されるエラー メッセージ テキストを指定します。
Number
Zen サーバーから返される数を取得または設定します。
SQLState
Zen データ プロバイダーが例外をスローしたときに SQLState の文字列表記を返します。例外に対応するエラーがない場合は 0 です。このプロパティは読み取り専用です。
PsqlFactory オブジェクト
プロバイダー ファクトリ クラスを使用すると、ユーザーは汎用オブジェクトのプログラムを作成できます。DbProviderFactory からインスタンス化すれば、ファクトリが正しいタイプの具体的なクラスを生成します。
45 は、ADO.NET データ プロバイダーの選択や DbProviderFactory のインスタンス化を調整するために使用される静的メソッドを示しています。
 
表 45 PsqlFactory オブジェクトのメソッド
メソッド
説明
CreateCommand
厳密に型指定された DbCommand インスタンスを返します。
CreateCommandBuilder
厳密に型指定された DbCommandBuilder インスタンスを返します。
CreateConnection
厳密に型指定された DbConnection インスタンスを返します。
CreateConnectionStringBuilder
厳密に型指定された DbConnectionString インスタンスを返します。
CreateDataAdapter
厳密に型指定された DbDataAdapter インスタンスを返します。
CreateDataSourceEnumerator
厳密に型指定された PsqlDataSourceEnumerator インスタンスを返します。
CreateParameter
厳密に型指定された DbParameter インスタンスを返します。
PsqlInfoMessageEventArgs オブジェクト
PsqlInfoMessageEventArgs オブジェクトは、PsqlInfoMessageEventHandler に入力として渡され、Zen サーバーで生成される警告に関する情報を格納します。
46 では、PsqlInfoMessageEventArgs オブジェクトのパブリック プロパティについて説明します。
 
表 46 PsqlInfoMessageEventArgs のパブリック プロパティ
プロパティ
説明
Errors
Zen サーバーから送られる警告のコレクションを格納する PsqlErrorCollection を指定します。詳細については、PsqlErrorCollection オブジェクトを参照してください。
Message
Zen サーバーから返される最新のテキスト メッセージを返します。複数の警告が発生したかどうかを判断するには、アプリケーションはこのオブジェクトの Errors プロパティで返される PsqlErrorCollection の Count プロパティを調べる必要があります。
PsqlParameter オブジェクト
PsqlParameter オブジェクトは PsqlCommand オブジェクトのパラメーターを表します。
47 では、PsqlParameter オブジェクトのパブリック プロパティについて説明します。
 
表 47 PsqlParameter オブジェクトのパブリック プロパティ
プロパティ
説明
ArrayBindStatus
PsqlParameterStatus エントリの配列内のすべての値を null としてバインドする必要があるかどうかを決定します。PsqlParameterStatus 列挙はエントリ NullValue を含んでいます。
このプロパティを設定しなければ、値は null になりません。配列の長さは、PsqlCommand オブジェクトの ArrayBindCount プロパティで指定された値と一致する必要があります(PsqlCommand オブジェクトを参照してください)。
デフォルトの初期値は null です。
DbType
パラメーターの DbType を取得または設定します。
Direction
パラメーターが入力専用、出力専用、双方向、あるいはストアド プロシージャの戻り値パラメーターかどうかを示す値を取得または設定します。
IsNullable
パラメーターが null 値を受け入れるかどうかを示す値を取得または設定します。
ParameterName
PsqlParameter オブジェクトの名前を設定または取得します。
Precision
Value プロパティを表す場合の最大桁数を取得または設定します。
Scale
Value プロパティを解決する小数点以下の桁数を取得または設定します。
Size
列内のデータの最大サイズをバイト単位で取得または設定します。
SourceColumn
DataSet に割り当てられており、Value プロパティの読み込みまたは返却に使用されるソース列の名前を取得または設定します。
SourceColumnNullMapping
ソース列がヌル値を許可するかどうかを示す値を設定または取得します。
SourceVersion
Value プロパティの読み込み時に使用する DataRowVersion を取得または設定します。
Value
パラメーターの値を取得または設定します。
デフォルトの初期値は null です。
メモ:配列バインドが有効な場合(PsqlCommand オブジェクトの ArrayBindCount プロパティを参照してください)、このプロパティは値の配列として指定されます。各配列の長さは ArrayBindCount プロパティの値と一致させる必要があります。バイナリ型の列に配列の値を指定する場合、そのデータは実質的には byte[] として指定されます。これはバイトの配列の配列です。データ プロバイダーは複数のパラメーターにバインドするパラメーター配列を使用するような場合には、「ジャグ(Jagged)」配列を予測します。
ストアド プロシージャ パラメーターを null に設定した場合、データ プロバイダーはそのパラメーターをサーバーに送りません。代わりに、ストアド プロシージャを実行する際はパラメーターのデフォルト値が使用されます。
PsqlParameterCollection オブジェクト
PsqlParameterCollection オブジェクトは PsqlCommand に関するパラメーターのコレクションです。また、DataSet の列へのマッピングも含まれています。
48 では、PsqlParameterCollection オブジェクトのパブリック プロパティについて説明します。
 
表 48 PsqlParameterCollection のパブリック プロパティ
プロパティ
説明
Count
コレクション内の PsqlParameter オブジェクトの数を取得します。
IsFixedSize
PsqlParameterCollection が固定サイズかどうかを示す値を取得します。
IsReadOnly
PsqlParameterCollection が読み取り専用かどうかを示す値を取得します。
IsSynchronized
PsqlParameterCollection がスレッド セーフかどうかを示す値を取得します。
Item
指定されたインデックス位置にあるパラメーターを返します。C# の場合、このプロパティは IDataParameterCollection クラス用のインデクサーです。
SynchRoot
PsqlParameterCollection への同期アクセスに使用するオブジェクトを取得します。
49 では、PsqlParameterCollection オブジェクトのパブリック メソッドについて説明します。
 
表 49 PsqlParameterCollection オブジェクトのパブリック メソッド
メソッド
説明
Contains
コレクション内のパラメーターに、指定したソース テーブル名が格納されているかどうかを示す値を取得します。
IndexOf
コレクション内における IDataParameter の位置を取得します。
RemoveAt
コレクションから IDataParameter を削除します。
PsqlTrace オブジェクト
PsqlTrace オブジェクトは、開発時に問題をデバッグするためアプリケーションによって作成されます。PsqlTrace オブジェクトのプロパティを設定すると、その値を優先し環境変数の設定を無効にします。アプリケーションが最終的なものになったら、PsqlTrace オブジェクトへの参照を必ず削除してください。
次のコードでは MyTrace.txt という名前の Trace オブジェクトを作成しています。その結果、データ プロバイダーへの呼び出しはすべてそのファイルへトレースされます。
PsqlTrace  MyTraceObject = new PsqlTrace();
     MyTraceObject.TraceFile="C:\\MyTrace.txt";
     MyTraceObject.RecreateTrace = 1;
     MyTraceObject.EnableTrace = 1;
50 では、PsqlTrace オブジェクトのパブリック プロパティについて説明します。
 
表 50 PsqlTrace のパブリック プロパティ
プロパティ
説明
EnableTrace
1 以上に設定すると、トレースが有効になります。
デフォルトの初期値は 0 です。トレースは無効です。
RecreateTrace
1 に設定すると、アプリケーションを開始するたびにトレース ファイルが再作成されます。
0(デフォルトの初期値)に設定すると、トレース ファイルに追加されます。
TraceFile
トレース ファイルのパスと名前を指定します。
デフォルトの初期値は空文字列です。指定したファイルが存在しない場合は、データ プロバイダーがファイルを作成します。
メモ:EnableTrace でトレースを有効にするよう設定するとトレース処理が開始します。したがって、EnableTrace を設定する前にトレース ファイル用のプロパティ値を定義しておく必要があります。いったんトレース処理が開始されたら、TraceFile および RecreateTrace プロパティの値を変更することはできません。
51 では、PsqlTrace オブジェクトのパブリック メソッドについて説明します。
 
表 51 PsqlTrace オブジェクトのパブリック メソッド
メソッド
説明
DumpFootprints
1 つのデータ プロバイダーのすべてのソース ファイルのフットプリントを表示します。
PsqlTransaction オブジェクト
52 では、PsqlTransaction オブジェクトのパブリック プロパティについて説明します。
 
表 52 PsqlTransaction オブジェクトのパブリック プロパティ
プロパティ
説明
Connection
トランザクションに関連付けられる PsqlConnection オブジェクトを指定します。詳細については、PsqlConnection オブジェクトを参照してください。
IsolationLevel
トランザクション全体の分離レベルを定義します。値を変更すると、その新しい値が実行時に使用されます。
53 では、PsqlTransaction オブジェクトのパブリック メソッドについて説明します。
 
表 53 PsqlTransaction オブジェクトのパブリック メソッド
メソッド
説明
Commit
派生クラスで上書きされた場合、その結果生じる 1 つ以上の例外の根本原因である Exception を返します。
Rollback
トランザクションをコミットする前に、そのトランザクションで行った変更を取り消します。
Zen Common Assembly
Zen ADO.NET データ プロバイダーでは、バルク ロードなどの拡張機能を提供する追加クラスを使用できます。すべてのクラスはマネージ コードのみで作成されています。以下のクラスが Pervasive.Data.Common.dll アセンブリで提供されます。
CsvDataReader
CsvDataWriter
DbBulkCopy
DbBulkCopyColumnMapping
DbBulkCopyColumnMapping
バルク ロードに使用されるクラスは、汎用プログラミング モデルを実装します。これらは、Zen Bulk Load をサポートする任意の DataDirect Technologies ADO.NET データ プロバイダーまたは ODBC ドライバー、およびサポートされる任意のデータベースと共に使用することができます。
CsvDataReader
CsvDataReader クラスは、Zen Bulk Load が定義した CSV ファイル形式用の DataReader 構文を提供します。
54 は、CsvDataWriter オブジェクトのパブリック プロパティの一覧です。
 
表 54 CsvDataReader オブジェクトのパブリック プロパティ
プロパティ
説明
BulkConfigFile
WriteToFile メソッドが呼び出されたときに作成された CSV バルク構成ファイルを指定します。バルク ロード構成ファイルは、バルク ロード データ ファイル内の列の名前とデータ型を、データをエクスポートしたテーブルや結果セットと同じ方法で定義します。バルク ロード構成ファイルは、基となる XML スキーマによってサポートされます。
パスには完全修飾パスを使用します。そうしないと、ファイルは現在の作業ディレクトリにあるものと見なされます。
メモ:このプロパティは Open() 呼び出しの前および Close() 呼び出しの後にのみ設定できます。それ以外の場合、InvalidOperationException がスローされます。
BulkFile
CSV 形式のバルク データを含むバルク ロード データ ファイルを指定します。このファイル名は、バルク データの書き出し(エクスポート)および読み込み(インポート)で使用されます。指定したファイル名に拡張子が含まれない場合は、".csv" と見なされます。
パスには完全修飾パスを使用します。そうしない場合、ファイルはデフォルトで現在の作業ディレクトリにあるものと見なされます。この値が設定されていないと、InvalidOperationException がスローされます。
メモ:このプロパティは Open() 呼び出しの前および Close() 呼び出しの後にのみ設定できます。それ以外の場合、InvalidOperationException がスローされます。
ReadBufferSize
バルク ロードを使用してデータ ソースからデータをインポートする場合の読み取りバッファーのサイズを指定します。
デフォルトの初期値は 2048 KB です。
ゼロまたはゼロより小さい値を設定すると、System.ArgumentOutOfRangeException がスローされます。
RowOffset
バルク ロード読み取りを開始する行を指定します。RowOffset は先頭行(第 1 行)からの相対位置です。
デフォルトの初期値は 1 です。
ゼロまたはゼロより小さい値を設定すると、System.ArgumentOutOfRangeException がスローされます。
メモ:このプロパティは Open() 呼び出しの前および Close() 呼び出しの後にのみ設定できます。それ以外の場合、InvalidOperationException がスローされます。
SequentialAccess
パフォーマンス改善のための手法で列にアクセスするかどうかを決定します。
デフォルトの初期値は False です。
メモ:このプロパティは Open() 呼び出しの前および Close() 呼び出しの後にのみ設定できます。それ以外の場合、InvalidOperationException がスローされます。
55 は CsvDataReader オブジェクトのパブリック メソッドの一覧です。
 
表 55 CsvDataReader オブジェクトのパブリック メソッド
プロパティ
説明
Open
処理に必要なバルク ファイルのインスタンスおよび関連付けられたメタデータ ファイルを開きます。
CsvDataWriter
CsvDataWriter クラスは、Zen Bulk Load によって書き出される CSV ファイル形式の Pervasive DataWriter 構文を提供します。
詳細については、データ プロバイダーのオンライン ヘルプを参照してください。
56 は、CsvDataWriter オブジェクトのパブリック プロパティの一覧です。
 
表 56 CsvDataWriter オブジェクトのパブリック プロパティ
プロパティ
説明
BinaryThreshold
バルク アンロード中にバイナリ データを格納するのに、どのサイズでファイルを分けて生成するかを決定するしきい値(KB 単位)を指定します。
デフォルトの初期値は 32 です。
ゼロより小さい値を指定すると System.ArgumentOutOfRangeException がスローされます。
CharacterThreshold
バルク アンロード中に文字データを格納するのに、どのサイズでファイルを分けて生成するかを決定するしきい値(KB 単位)を指定します。
デフォルトの初期値は 64 です。
ゼロより小さい値を指定すると System.ArgumentOutOfRangeException がスローされます。
CsvCharacterSetName
サポートされる IANA コード ページの中から、使用されるコード ページ名を値で指定します。サポートされる値については、IANA コード ページ マッピングを参照してください。
アプリケーションは、PsqlConnection.DatabaseCharacterSetName プロパティを使用してデータベースに設定されている文字セットを取得できます。
認識されない CharacterSetName を使用すると、無効な文字セットが使用されたことを示す例外がスローされます。
デフォルトの初期値は UTF-16 です。
このプロパティは、CSV データ ファイルおよび追加されるオーバー フロー ファイルでこの文字セットが必ず使用されるようにします。
57 は CsvDataWriter オブジェクトのパブリック メソッドの一覧です。
 
表 57 CsvDataWriter オブジェクトのパブリック メソッド
プロパティ
説明
Open
処理に必要なバルク ファイルのインスタンスおよび関連付けられたメタデータ ファイルを開きます。
WriteToFile
IDataReader の内容をバルク データ ファイルに書き出します。
DbBulkCopy
DbBulkCopy クラスは 1 つのデータ ソースから別のデータ ソースへ行をコピーするのを容易にします。
DbBulkCopy オブジェクトは、事実上の業界標準である Microsoft SqlBulkCopy クラスの定義に従っており、プロバイダー固有のプロパティやメソッドを持ちません。サポートされるプロパティおよびメソッドについては、データ プロバイダーのオンライン ヘルプおよび Microsoft .NET Framework SDK のドキュメントを参照してください。
DbBulkCopyColumnMapping
DbBulkCopyColumnMapping クラスは、データ ソース テーブルから宛先テーブルへの列のマップを表します。
DbBulkCopyColumnMapping オブジェクトは、事実上の業界標準である Microsoft SqlBulkCopyColumnMapping クラスの定義に従っており、プロバイダー固有のプロパティやメソッドを持ちません。サポートされるプロパティおよびメソッドについては、データ プロバイダーのオンライン ヘルプおよび Microsoft .NET Framework SDK のドキュメントを参照してください。
DbBulkCopyColumnMappingCollection
DbBulkCopyColumnMappingCollection クラスは DbBulkCopyColumnMapping オブジェクトのコレクションです。
DbBulkCopyColumnMappingCollection オブジェクトは、事実上の業界標準である Microsoft SqlBulkCopyColumnMappingCollection クラスの定義に従っており、プロバイダー固有のプロパティやメソッドを持ちません。サポートされるプロパティおよびメソッドについては、データ プロバイダーのオンライン ヘルプおよび Microsoft .NET Framework SDK のドキュメントを参照してください。