データベース接続の管理この節では、データベース接続の開始、終了、および切り替え方について解説します。以下のSQL文を使用して、データベースへ接続します。user-name];targetは以下の方法で指定されます。dbname[@hostname][:port]tcp:postgresql://hostname[:port][/dbname][?options]unix:postgresql://hostname[:port][/dbname][?options]上の形式のいずれかを含むSQL文字列リテラル。上の形式のいずれかを含む文字変数への参照。区別に関して通常のSQLの規則が適用されます。この場合、必要に応じて個々のパラメータを二重引用符で別々にくくることもできます。実際には、おそらく(単一引用符でくくられた)文字列リテラルもしくは変数の参照を使用した方がエラーをより防止することができます。DEFAULT接続対象は、デフォルトデータベース、デフォルトのユーザ名で接続を初期化します。この場合は、ユーザ名と接続名を分けて指定することができません。ユーザ名を指定するには、別の方法もあります。passwordこれまで同様、usernameとpasswordは、SQL識別子、SQL文字列リテラル、文字型変数への参照を取ることができます。1つのプログラム内で複数の接続を処理する場合には、connection-nameを使用します。プログラムで1つしか接続を使わない場合は省略して構いません。最近に開かれた接続が現在の接続になり、SQL文を実行しようとする時にデフォルトでこの接続が使用されます(本章の後で説明します)。以下にCONNECT文について、数例を示します。*/最後の形式では、文字変数参照として上を参照する変数を使用しています。後の節で、接頭辞にコロンを持つ場合のSQL文内でのC変数の使用方法について説明します。接続対象の書式は標準SQLでは規定されていないことに注意してください。そのため、移植可能なアプリケーションを開発したいのであれば、上の例の最後の方法を基にして、接続対象文字列をどこかにカプセル化してください。前節で示したSQL文は現在の接続、つまり、最も最近に開いた接続上で実行されます。複数の接続を管理する必要があるアプリケーションでは、これを処理する2つの方法があります。1つ目の選択肢は、各SQL文で明示的に接続を選択することです。...;アプリケーションが複数の接続を不特定な順番で使用する必要がある場合、この選択肢は特に適しています。アプリケーションの実行に複数スレッドを使用する場合、スレッド間で接続を同時に共有できません。接続へのアクセスを(ミューテクスを使用して)明示的に制御するか、または各スレッド用の接続を使用するかを行わなければなりません。2番目の選択肢は、現在の接続を切り替えるSQL文を実行することです。connection-name;多くのSQL文を同一接続に対して使用する場合、この選択肢は特に便利です。以下に複数のデータベースコネクションを管理しているプログラムの例を示します。この問い合わせは最後に開いたデータベース"testdb3"で実行される。現在の接続を"testdb1"に切り替える。0;}この例は、次のような出力を生成します。接続を閉じる接続を閉じるには以下のSQL文を使用します。[connection];connectionは以下の方法で指定されます。connection-nameDEFAULTCURRENTALL接続名の指定がなければ、現在の接続が閉じられます。アプリケーションでは、過去に開いたすべての接続を明示的に閉じることを推奨します。