//[DbAccess]executeReaderによるデータ出力の実装 private static void DbAccess( DlgFactory targetFct, DlgConn targetCnn, DlgAccessMethod targetAccessMethod) { //接続プロバイダの指定(ファクトリオブジェクト) DbProviderFactory fct = targetFct(); //接続の作成 using (DbConnection cnn = fct.CreateConnection()) { //接続文字列のセット cnn.ConnectionString = targetCnn(fct); //データ抽出 targetAccessMethod(fct, cnn, GetSQLString()); } }
//[Main]メイン処理 static void Main(string[] args) { //デリゲートにメソッドをセット DlgConn cnn = ConnectionStringORA; //接続先情報(共通) //接続プロバイダ DlgFactory odpfct = FactoryODP; //ODP.Net(Oracle実装) DlgFactory adofct = FactoryADO; //ADO.Net(MS実装:廃止される) //実装方法 DlgAccessMethod exrd = UseExecuteReader; //executeReadeによる実装 DlgAccessMethod dtap = UseDataAdapter; //dataAdapterによる実装 //データ取込み Console.WriteLine("[1.ODP.Net(Oracle実装) & executeReader]"); DbAccess(odpfct, cnn, exrd); Console.WriteLine("[2.ADO.Net(MS実装) & executeReader]"); DbAccess(adofct, cnn, exrd); Console.WriteLine("[3.ODP.Net(Oracle実装) & dataAdapter]"); DbAccess(odpfct, cnn, dtap); Console.WriteLine("[4.ADO.Net(MS実装) & dataAdapter]"); DbAccess(adofct, cnn, dtap); }