概要
原文
npgsqlマニュアル(2014年7月25日・13改訂版)(外部サイト)
公式ページのドキュメントです。英語で書かれています。
このドキュメントは、過去のNpgsqlのバージョンのドキュメントです。より新しいドキュメントは、「接続文字列パラメータ Npgsql」をご覧ください。
接続文字列パラメータ Connection String parameters
接続を確立するとき、NpgsqlConnectionは、その動作を変更する多くのパラメータを受け取ります。 ここに、あなたが微調整することができる、現在のパラメータのリストがあります。
- Server
- Port
- Protocol
- Database
- User Id
- Integrated Security
- Password
- SSL
- ApplicationName
- Pooling
- MinPoolSize
- MaxPoolSize
- Encoding
- Timeout
- CommandTimeout
- Sslmode
- SSL接続制御モード。以下の1つであることができます。:
- Prefer
- Require
- Allow
- Disable
- ConnectionLifeTime
- SyncNotification
- SearchPath
- Preload Reader
- 「true」に設定される場合、(省略時設定は「false」です)これは、ExecuteReaderが戻る前に、 それらが、完全に読み込まれるためにdatareadersが引き起こされます。
- この結果は、より少ない性能をもたらします。(特に、きわめて大規模なレコードセットの場合、その場合、性能のレベルは、耐えられないかもしれません)、 しかし、Npgsqlの以前のバージョンの後方互換性の問題の特定の可能性をカバーするための選択肢として残されています。
- ADO.NETドキュメンテーションによれば、IDataReaderが、それを取得するために、IDbConnectionを使用して開いている間 、「busy」です。そして、どんな他の操作も使用できません。(この規則に対するいくつかの文書化された例外を除く。 Npgsqlは、この規則を強制します。そして、それゆえ、NpgsqlDataReaderは、取得するためにNpgsqlConnectionを使用して、 ほとんどの他の操作を開きます。それは、InvalidOperationExceptionが結果として生じるでしょう。 (Npgsqlは、あなたが、接続を使うための規則を緩和します。NpgsqlDataReaderが、 そのresultset(s)を終わりまで読み込んだ場合、たとえ、それが閉じられていないとしても、 この時点では、その接続から、どんなリソースも、もはや使用していないので)。
- しかしながら、以前に、Npgsqlは、ユーザーが、この規則を完全に無視できます。これは、完全に内部の実装問題の副作用でした。 そして、厳密に言うと、全くサポートされていませんでした。(それは、常に、ADO.NETの仕様に違反しているため) しかし、それは、あなたは、突然、以前に動作していたコードが壊れているのを見つけることで、少し快適になるでしょう。 それゆえ、あなたが、この変更に関する問題を見つけた場合、 あなたは、以前の動作に戻すために、この接続文字列の選択肢を使用することができます。
- しかしながら、あなたが、それを使う場合、あなたは、それで、2つの理由のため、 問題となっているコードを修正するために、以前の穴埋めを行う必要があります。:
- 性能と、特に、スケーラビリティは、この選択肢なしで、とても優れています。
- あなたは、異なるデータプロバイダの拡張をサポートしたい、 どの点でも行うべきであれば、このようなコードは、失敗する可能性が高くなります。
- 拡張型を使用する Use Extended Types
- この選択肢は、DataAdaptorsが、.NET System.DateTime型やSystem.DateTimeの越える範囲に及ぶ機能を持つ、 NpgsqlTimeStampのようなNpgsql日付時間型を使用することを期待するかどうかに影響します。 どちらの選択肢でも、Npgsqlとシステム型の両方を使用できます。 しかし、「true」に設定される場合、DataAdaptorsは、問題となっているフィールドのための特定のNpgsql型を渡されることを期待することになります。 ところが、「false」に設定されている場合、System.DateTimeを期待することになります。
- この選択肢は実験的です。そして、うまくいけば、以後のリリースで、その影響は、低減や除去されます。
- 省略時設定は、「false」です。
- 互換性
- このバージョンは、これまでより多く、より多くの接続文字列の選択肢を追加するために、 壊れている変更をより簡単なメソッドとして、取り扱うことを意図されます。それは、バージョン番号(a.b[.c[.d]])の形の単一の値を取得します。 重要なバージョン番号の動作をコピーし、可能な場合、 破壊する可能性がある既存のコードを変更します。最初の、このようなバージョンは、2.0.2.1です。 それで、「2.0.2」の値は、その新しいふるまいをしません。
- バージョン2.0.2
- バージョン2.0.2.1
PostgreSQLサーバのAddress/Name
接続するPort
自動の代わりに、使用するProtocolバージョン;整数2または3
データベース名。User Idを指定しない場合、既定の設定で実行するユーザー名。
ユーザー名
Windowsの統合セキュリティを利用するために設定します。Default=false
クリアテキスト認証のためのパスワード
Trueまたはfalse。安全な接続を試みるべきかどうかを制御します。Default = False
アプリケーション名は、pg_stat_activityのこの接続に対して表示されるでしょう。
Trueまたはfalse。接続プーリングが使用されるかどうかを制御します。Default = True
接続プールの最小サイズ。最小プール・サイズが指定されたとき、 サーバで事前に指定された割り当てられた接続の数のNpgsqlConnectionを作成するでしょう。 Default 1
接続プールの最大サイズ。プールが、この接続の数よりも多く含まれている場合、 プールされた接続は、プールに返されるとき、破棄されるでしょう。Default: 20
用いられていません。常に、「Unicode」の文字列を返します。そして、静かに、それに設定する試みを無視します。
接続を開くために待機する時間の秒数。省略時設定は、15です。
コマンドを完了するための待つための時間は、例外を投げる前に実行します。数秒で。省略時設定は、20です。
SLLを経由して接続することができる場合、SSLは使用されるでしょう。
SSL接続が確立できない場合、例外が、投げられます。
まだサポートされていません。;SSLなしで接続します。
SSL接続を試みません。既定の値は、「disable」です。
数秒で、プール内の使っていない接続を閉じるのを待つための時間。省略時設定は、15です。
Npgsqlが、同期通知を使うかどうか指定します。
指定された、そして、publicスキーマーへの検索パスを変更します。
動作するフィールドの名前が見つからない場合、GetOrdinalは-1を返すでしょう。GetOrdinalは、カナの幅に敏感です。
GetOrdinalは、フィールドの名前が見つからない場合、IndexOutOfRangeExceptionを投げるでしょう。 GetOrdinalは、カナの幅に鈍感です。