作成日 2015.03.05
最終更新日 2015.03.05
概要
PostgreSQLデータベース・サーバのための、.NET データ・プロバイダNpgsqlのドキュメント(2014年7月25日・13改訂版)の和訳です。
旧版ドキュメント(外部サイト)
の和訳は存在しましたが、現行版のドキュメントのものは見つからなかったので和訳しました。
PostgreSQLとC#の両方を学ぶための資料集めの一環としての作成しています。
原文
npgsqlマニュアル(2014年7月25日・13改訂版)(外部サイト)
公式ページのドキュメントです。英語で書かれています。
用意された命令を使用する
Using prepared statements
Prepareメソッドは、あなたが、頻繁に使用した問合せの性能を最適化します。Prepare()は、 基本的に、query計画を「キャッシュ」に格納し、その後の呼び出しで使用されます。 (この機能は、サーバ7.3+バージョンでのみ、利用できることに注意します。 あなたが、サポートされていない、 それをサーバ内から呼び出すと、Npgsqlは、それを黙って無視します。 単純に、問合せを実行する前に、NpgsqlCommandのPrepare()メソッドを呼び出します:
using System;
using System.Data;
using Npgsql;
public static class NpgsqlUserManual
{
public static void Main(String[] args)
{
using(NpgsqlConnection conn = new NpgsqlConnection("Server=127.0.0.1;Port=5432;User Id=joe;Password=secret;Database=joedata;"))
{
conn.Open();
// Declare the parameter in the query string
// 問合せ文字列でパラメータを宣言します
using(NpgsqlCommand command = new NpgsqlCommand("select * from tablea where column1 = :column1", conn))
{
// Now add the parameter to the parameter collection of the command specifying its type.
// 今、その型を指定しているコマンドのパラメータ・コレクションに、パラメータを追加します。
command.Parameters.Add(new NpgsqlParameter("column1", NpgsqlDbType.Integer);
// Now, prepare the statement.
// 今、命令を準備しています。
command.Prepare();
// Now, add a value to it and later execute the command as usual.
// 今、それに値を追加し、いつもの通り、後でコマンドを実行します。
command.Parameters[0].Value = 4;
using(NpgsqlDataReader dr = command.ExecuteReader())
{
while(dr.Read())
{
for (i = 0; i < dr.FieldCount; i++)
{
Console.Write("{0} \t", dr[i]);
}
Console.WriteLine();
}
}
}
}
}
}
このコードは、「tablea」と呼ばれるテーブルと「column1」という名前の少なくとも1つの列を持つint4型を想定します。