データベース接続
業務アプリケーションでは、データベースへのアクセスが必須となります。該当の業務アプリケーションで主として使用するデータベース以外にも、他のアプリケーションが主に使っているデータベースの情報を閲覧することもあります。ですので1つの業務アプリケーションで複数のデータベースを取り扱うこともしばしばです。
「YWorks Software Framework(以下、YWSFと呼びます)」では、業務アプリケーションで必要とする全てのデータベース接続をコネクションマネージャ(YCConnectionManager)というクラスが管理しています。YCConnectionManagerはデータベース接続クラス(YCConnectionクラス)を保持しています。
YCConnectionManagerはSingletonパターンで実装されています。ですのでインスタンスの呼び出しは「YCConnectionManager.Instance」という記述で行います。
データベース接続の登録は起動ルーチンにて行います。業務アプリケーションが主として使うメインのデータベース接続はStartupConnectionメソッドを使用します。また、メインのデーベース接続はYCConnectionManager.Instance.Connectionプロパティを参照することで取得できます。
YWSFではデータベース接続(YCConnectionクラスのサブクラス)に3種類のクラスを用意しています。
- YCSQLConnection
- SQL Serverに接続するためのクラスです。
- YCOleDbConnection
- OLE DB(ODBC接続を発展させたものです)を使ってデータベース接続するクラスです。SQL Server以外で使用します。
- YCOdbcConnection
- ODBC接続を使ってデータベース接続するクラスです。SQL Server以外で使用します。
また、YCSQLConnection(及びSQLConnection)を使う場合のデータベース接続文字列のサンプルは下記のようになります。
(SQL Server 2005 Express Edition) Data Source=.\SQLEXPRESS;AttachDbFilename=「データファイル(*.mdf)ファイルへのパス」;Integrated Security=True;Connect Timeout=30;User Instance=True; (SQL Server) User ID=「ユーザID」;Password=「パスワード」;Initial Catalog=「データベース名」;Data Source=「ホストアドレス」;
メイン以外のデータベース接続はAddSubConnectionメソッドで名前を付けて登録し、GetSubConnectionメソッドで名前を指定して取得します。
コネクションマネージャは業務アプリケーション終了時にDispose(利用されなくなったときの後処理です)が実行されます。その際に管理しているデータベース接続(YCConnectionクラス)を全てDisposeします。
データベース接続クラス(YCConnectionクラス)はインスタンス一つがデータベース接続一つを表しています。YConnectionクラスでは結果セットを必要としないSQLの実行やトランザクションの管理、読み取り専用の結果セット(DataReader)の生成などを行うことができます。