/// <summary> /// 接続を初期化します。 /// </summary> private void initializeConnection(HalationGhostDbConnectSettingLoaderBase loader) { if (HalationGhostDbAccessBase.connectionSetting == null) { HalationGhostDbConnectSettingLoaderBase settingLoader = loader; if (settingLoader == null) { settingLoader = new HalationGhostDbConnectSettingLoaderBase(); } // キャッシュされていない場合は接続設定ファイルを読み込む HalationGhostDbAccessBase.connectionSetting = settingLoader.Load(); if (HalationGhostDbAccessBase.connectionSetting == null) { throw new Exception("DBの接続設定ファイルがLoadできません。"); } } // 接続する設定ファイル番号を取得 var num = this.getConnectionNumber(); if ((HalationGhostDbAccessBase.helper == null) || (!num.HasValue)) { HalationGhostDbAccessBase.helper = DbAccessHelperFactory.CreateHelper(HalationGhostDbAccessBase.connectionSetting, num); } this.Connection = HalationGhostDbAccessBase.helper.GetConnection(); }
/// <summary>IDbAccessHelperを生成します。</summary> /// <param name="setting">DBの接続設定を表すDbConnectionSetting。</param> /// <param name="targetNumber">接続先DBの番号を表すint?。</param> /// <returns>DBへアクセスするためのIDbAccessHelper。</returns> public static IDbAccessHelper CreateHelper(DbConnectionSetting setting, int?targetNumber) { var num = targetNumber; if (!num.HasValue) { num = setting.TargetNumber; } var info = setting.ConnectInformations.Find(c => c.Number == num); if (info == null) { return(null); } switch (info.DbType) { case DatabaseType.SQLite: return(new SqliteAccessHelper(info)); } return(null); }