作成日 2015.03.06
最終更新日 2015.03.06
概要
PostgreSQLデータベース・サーバのための、.NET データ・プロバイダNpgsqlのドキュメント(2014年7月25日・13改訂版)の和訳です。
旧版ドキュメント(外部サイト)
の和訳は存在しましたが、現行版のドキュメントのものは見つからなかったので和訳しました。
PostgreSQLとC#の両方を学ぶための資料集めの一環としての作成しています。
原文
npgsqlマニュアル(2014年7月25日・13改訂版)(外部サイト)
公式ページのドキュメントです。英語で書かれています。
問合せで出力パラメーターを使用する。
Using output parameters in a query
パラメータの出力は、Npgsqlで使用できます。問合せの実行から最初の結果セットを解析して、 それを出力パラメーター値に変換することで、Npgsqlが出力パラメーターを「シミュレーションする」ことに注意します。 これは、2つの方法で行うことができます。:マッピングするか、しないか。マッピングされた構文解析は、 同じ名前のパラメータから、結果セットで返される列の名前と一致させようとします。一致が見つかると、 一致を持ってる出力パラメーターだけが、更新されるでしょう。マップが見つからない場合、出力パラメーターは、 それらが、コマンド・パラメータ・コレクションに追加された順序に基づいて更新されます。 このマッピングは、自動的に行われます。結果セットを解析すると、Npgsqlは、一致を探そうと試みます。 OutputとInputOutputパラメータの方向の両方は、サポートされています。
using System;
using System.Data;
using Npgsql;
public static class NpgsqlUserManual
{
public static void Main(String[] args)
{
NpgsqlConnection conn = new NpgsqlConnection
("Server=127.0.0.1;Port=5432;User Id=joe;Password=secret;Database=joedata;");
conn.Open();
// Send a query to backend.
// バックエンドに問合せを送信します。
NpgsqlCommand command = new NpgsqlCommand("select * from tablea where column1 = 2", conn);
// Now declare an output parameter to receive the first column of the tablea.
// 今、tableaの最初の列を受け取る出力パラメーターを宣言します。
NpgsqlParameter firstColumn = new NpgsqlParameter("firstcolumn", NpgsqlDbType.Integer);
firstColumn.Direction = ParameterDirection.Output;
command.Parameters.Add(firstColumn);
try
{
command.ExecuteNonQuery();
// Now, the firstcolumn parameter will have the value of the first column of the resultset.
// 今、パラメータfirstcolumnは、結果セットの最初の列の値を持っているでしょう。
Console.WriteLine(firstColumn.Value);
}
finally
{
conn.Close();
}
}
}