PstgreSQL用Npgsqlヘルパークラス

ちょっと空いた時間に、Npgsqlを利用するPstgreSQL用のデータベースヘルパークラスも作ってみたり(・∀・)


メソッド一覧はおなじみのもので、こんな感じです。

using System;
using System.Collections.Generic;
using System.Data;
using Npgsql;
using NpgsqlTypes;

namespace DBUtility
{
    public abstract class NpgHelper
    {
        protected static void PrepareCommand(NpgsqlCommand cmd, NpgsqlConnection conn, NpgsqlTransaction tx, CommandType cmdType, string cmdText, NpgsqlParameter[] parameters);
        public static int ExecuteNonQuery(NpgsqlConnection conn, CommandType cmdType, string cmdText, params NpgsqlParameter[] parameters);
        public static int ExecuteNonQuery(NpgsqlTransaction tx, CommandType cmdType, string cmdText, params NpgsqlParameter[] parameters);
        public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params NpgsqlParameter[] parameters);
        public static object ExecuteScalar(NpgsqlConnection conn, CommandType cmdType, string cmdText, params NpgsqlParameter[] parameters);
        public static object ExecuteScalar(NpgsqlTransaction tx, CommandType cmdType, string cmdText, params NpgsqlParameter[] parameters);
        public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params NpgsqlParameter[] parameters);
        public static NpgsqlDataReader ExecuteReader(NpgsqlConnection conn, CommandType cmdType, string cmdText, params NpgsqlParameter[] parameters);
        public static NpgsqlDataReader ExecuteReader(NpgsqlTransaction tx, CommandType cmdType, string cmdText, params NpgsqlParameter[] parameters);
        public static NpgsqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params NpgsqlParameter[] parameters);
    }
}

コレ、SQL Server用のソースから文字列「Sql」を「Npgsql」に置換しただけだったりしますが。
とりあえずちゃんと動いてるっぽいから良いかな〜なんて(゚∀゚)


ODP.NET用のヘルパークラスを作ったときは、処理内容もSQL Server用とは微妙に違っていたりしましたが。
ODP.NETはちょっと特殊で、OracleParameterがIDisposableだったり、トランザクション周りが異なっていたんですが、NpgsqlについてはSQL Server用の処理と同様で大丈夫みたいです(・∀・)


このヘルパークラスって、要はIDbConnectionやIDbCommandの手続きを簡略化してくれるだけなんですが、チョット使う分にはこのくらいの単純なものが便利だったりすることもあります。
Google Maps APIを使ったアプリケーションも、今後の事を考えてこのヘルパーを使うように書き換えておこうかしら。


そういえばAtlas July CTPが出ていたので、Google Maps APIアプリケーションも含めて、Atlasを使っているアプリケーションについてはAtlasとAtlas Toolkitを入れ替え(・∀・)
現状、それなりに動いているAtlas使用のアプリケーションとしては、温度計、ニコカレ、独り言、Google Mapsのアプリケーションがあります。
もっとも、UpdatePanelを利用してPostBackの発生しないUIを実現しているだけだったりして、特殊な事をやっているわけではないですけど。


ちなみに、NpgHelperと同じものが欲しい方はPetShop 4.0をダウンロードしてきて、その中に入っているSqlHelperのソースを置換すれば出来上がります(・∀・)
http://msdn.microsoft.com/asp.net/default.aspx?pull=/library/en-us/dnbda/html/bdasamppet4.asp