はじめに

本フレームワークに拠らない、従来通りの記述方法も可能ですが、説明がややこしくなるので、拡張ツール「Kairyu.Extensions.Connection」を使用した接続方法を説明します。

Kairyu.Extensions.Connectionとは?

DB接続を簡易に行うことができるKairyuの拡張ツールです。
なお、同ツールのソースコードは、Kairyu本体に同梱されています。

事前準備

1. 参照設定を追加

利用するには以下のプロジェクトを参照設定に加えてください。
Project file 必須 備考
Kairyu.Extensions.Connection.vbproj 必須 DB接続の基底となる処理が記述されています。
Kairyu.Extensions.Connection.Oracle.vbproj 任意 Oracle接続の実ロジックが記述されています。
Kairyu.Extensions.Connection.SqlCe4.vbproj 任意 SqlServerCe4接続の実ロジックが記述されています。
Kairyu.Extensions.Connection.SqlCe35.vbproj 任意 SqlServerCe3.5接続の実ロジックが記述されています。
Kairyu.Extensions.Connection.SqlServer.vbproj 任意 SqlServer接続の実ロジックが記述されています。
  • 「任意」と書かれたファイルは使用するDBMSに合わせて必要なものだけを利用してください。
  • ここではプロジェクトファイルを参照していますが、「DLL」を参照しても構いません。

2. アプリケーション構成ファイルを記述

アプリケーション構成ファイルを見て動作していますので、設定ファイルが必要になります。
しかし、ほとんどテンプレなので、実例を挙げてから解説します。

app.config
<?xml version="1.0"?>
<configuration>
  <configSections>
    <!--決まり文句-->
    <section name="connection" type="Kairyu.Extensions.Connection.ConnectionSectionHandler, Kairyu.Extensions.Connection"/>
  </configSections>

  <!--環境リストと実行環境-->
  <connection running-on="debug">
    <environments>
      <!--環境名「debug」のDBMS環境-->
      <environment name="debug">
        <assembly path="./Kairyu.Extensions.Connection.SqlCe35.dll" type="Kairyu.Extensions.Connection.SqlCe35.SqlServerCeConnector"/>
        <parameter is-encrypt="false" cn-string="Data Source=Database.sdf"/>
      </environment>
    </environments>
  </connection>
</configuration>

まず、「決まり文句」と書かれている箇所は「Kairyu.Extensions.Connection」を使いますという宣言みたいなものですので、何も考えずそのまま書いてください。
次に、「環境リストと実行環境」と書かれている箇所は、使用するDBMSによって記述を変える必要があります。書式は以下の通り。
<connection running-on="実行環境の名前">
  <environments>
    <environment name="環境名1">
      <assembly path="dllファイルのパス" type="実装された接続クラス正式名"/>
      <parameter is-encrypt="false" cn-string="接続文字列"/>
    </environment>
    <environment name="環境名2">
      <assembly path="dllファイルのパス" type="実装された接続クラス正式名"/>
      <parameter is-encrypt="false" cn-string="接続文字列"/>
    </environment><environment name="環境名n">
      <assembly path="dllファイルのパス" type="実装された接続クラス正式名"/>
      <parameter is-encrypt="false" cn-string="接続文字列"/>
    </environment>
  </environments>
</connection>
  • 「環境名1~n」は環境の名称です。任意の名称を付けてください。(例:debug、local)
  • 「実行環境の名前」は実行環境の名前を指定します。先程の「環境名1~n」の名称のいずれかを指定してください。
  • 「dllファイルのパス」に、先ほど「参照設定を追加」であげたプロジェクトをコンパイルして作成されるDLLの名を入力します。
  • 「実装された接続クラス正式名」に、クラスの型名を入力します。なお、型名は以下の通りです。
DLL Type
Kairyu.Extensions.Connection.Oracle.dll Kairyu.Extensions.Connection.Oracle.OracleConnector
Kairyu.Extensions.Connection.SqlCe4.dll Kairyu.Extensions.Connection.SqlCe4.SqlServerCeConnector
Kairyu.Extensions.Connection.SqlCe35.dll Kairyu.Extensions.Connection.SqlCe35.SqlServerCeConnector
Kairyu.Extensions.Connection.SqlServer.dll Kairyu.Extensions.Connection.SqlServer.SqlServerConnector
  • 「接続文字列」には、接続文字列(Connection String)を記述してください。
  • 一見ややこしい、一度書いたらそれまでです。また各プロジェクトに「config記述例.xml」というファイルがありますので、参考にしてください。

使い方

Connect関数(Shared)でDBへのコネクションを開始、終了します。
VB.NET
Kairyu.Extensions.Connection.Connector.Connect(
    Sub(cn As IDbConnection, prefix As String)
        'TODO:DB処理を記述します。
        Return
    End Sub)
  • prefix には、パラメータクエリ用のパラメータ接頭語(SqlServer系であれば「@」、Oracleなら「:」)が格納されています。
  • デリゲートになっていますので、Connect関数を実行するとDBへコネクションが開き、同関数を抜けるとコネクションンが閉じられます。

参考

以下のコードと意味合いとしては同等です。
VB.NET
Using cn As IDbConnection = New SqlServerCe.SqlCeConnection("Data Source=Database.sdf")
    cn.Open()
    Try
        'TODO:DB処理を記述します。
    Finally
        cn.Close()
    End Try
End Using

Last edited Jan 20, 2013 at 4:49 AM by mk3008, version 8

Comments

No comments yet.