作成日 2015.03.06
最終更新日 2015.03.06
概要
PostgreSQLデータベース・サーバのための、.NET データ・プロバイダNpgsqlのドキュメント(2014年7月25日・13改訂版)の和訳です。
旧版ドキュメント(外部サイト)
の和訳は存在しましたが、現行版のドキュメントのものは見つからなかったので和訳しました。
PostgreSQLとC#の両方を学ぶための資料集めの一環としての作成しています。
原文
npgsqlマニュアル(2014年7月25日・13改訂版)(外部サイト)
公式ページのドキュメントです。英語で書かれています。
注意
このドキュメントは、過去のNpgsqlのバージョンのドキュメントです。より新しいドキュメントの「トランザクション Npgsql」もご覧ください。
System.Transactionsサポート
System.Transactions Support
Josh Cooleyに感謝します。Npgsqlは、System.Transactionsのための最初のサポートを追加しました。このコードは、今でもきわめて初期の段階です。 それで、あなたが、それに関するどんな問題でも持っている場合、私たちに知らせてください。それで、私たちは、できるだけ早くそれを修正することができます。
それを使用するために、あなたは、接続文字列の中に、次のように配置する必要があります。:
Enlist=true
falseは、現在省略時設定です。しかし、一旦、System.Transactionsサポートが安定する場合、 私たちは、おそらくenlist=trueを省略時設定にするでしょう。
ここに、System.Transactionsサポートを使用するサンプルコードがあります。:
using System;
using System.Data;
using Npgsql;
using System.Transactions;
public class TransactionExample
{
public static void Main(String[] args)
{
string connectionString = "Server=127.0.0.1;User id=npgsql_tests;password=npgsql_tests;Enlist=true";
using (TransactionScope tx = new TransactionScope())
{
using (NpgsqlConnection connection = new
NpgsqlConnection(connectionString))
{
connection.Open();
using (NpgsqlCommand command = new
NpgsqlCommand("insert into tablea (cola) values ('b')", connection))
{
command.ExecuteNonQuery();
}
using (NpgsqlConnection connection2 = new
NpgsqlConnection(connectionString))
{
connection2.Open();
using (NpgsqlCommand command = new
NpgsqlCommand("insert into tablea (colb) values ('c')", connection2))
{
command.ExecuteNonQuery();
}
}
}
tx.Complete();
}
}
}