/// <summary>Конструктор класса</summary> /// <param name="path">Полный путь к каталогу для обработки файлов и записи в БД</param> /// <param name="dbConnData">Сведения о соединении с БД (кортеж: host, port, sid, user, password)</param> public MyTask(string path, Tuple <string, int, string, string, string> dbConnData) { this.path = path; Console.WriteLine("Инициализация модуля сохранения результатов в БД"); try { dbHandle = new OracleDatabase(dbConnData.Item1, dbConnData.Item2, dbConnData.Item3, dbConnData.Item4, dbConnData.Item5); dbWwriterHandle = new DBTaskWriter(dbHandle, FileHashSumInfoSet); } catch (Exception ex) { Console.WriteLine("Ошибка инициализации модуля сохранения результатов в БД"); dbHandle.Dispose(); throw new Exception(ex.Message); } Console.WriteLine("Инициализация модуля получения хеш-сумм"); hashSumFileCollectorHandle = new HashSumFileCollector(dbWwriterHandle, FileHashSumInfoSet); }
private void button1_Click(object sender, EventArgs e) { OracleDatabase db = null; string constring = "user id=hs_fund;password=handsome;data source=devgh"; OperLog oplog = OperLog.instance; try { // Create an instance of an OracleDatbase object db = new OracleDatabase(constring); // Start up the database //db.Startup(); Console.WriteLine("The Oracle database is now up."); // Executing Startup() is the same as the following: // db.Startup(OracleDBStartupMode.NoRestriction, null, true); // which is also the same as: // db.Startup(OracleDBStartupMode.NoRestriction, null, false); db.ExecuteNonQuery(""); // db.ExecuteNonQuery("ALTER DATABASE OPEN"); } catch (OracleException ex) { string err = "连接Oracle数据库失败,TNSNAME:racle异常信息:" + ex.Message; oplog.WriteLog(err, LogLevel.Error); System.Windows.Forms.MessageBox.Show(err); } catch (Exception ex) { string err = "连接Oracle数据库失败,TNSNAME:异常信息:" + ex.Message; oplog.WriteLog(err, LogLevel.Error); System.Windows.Forms.MessageBox.Show(err); } finally { // Dispose the OracleDatabase object db.Dispose(); } }
/// <summary>Метод, запускающий выполнение задачи: получение хеш-сумм файлов и запись результатов в БД</summary> public void run() { int currentTick = System.Environment.TickCount; Console.WriteLine("Запуск модуля получения хеш-сумм"); hashSumFileCollectorHandle.start(); Console.WriteLine("Запуск модуля сохранения результатов в БД"); dbWwriterHandle.start(); try { DirectoryHelper dirHelper = new DirectoryHelper(path); foreach (string[] files in dirHelper) { hashSumFileCollectorHandle.addFileToProcess(files); } hashSumFileCollectorHandle.requestStop(); hashSumFileCollectorHandle.waitForTask(); Console.WriteLine("Все файлы и папки обработаны, всего файлов обработано: {0}, ожидаем завершения работы с БД", hashSumFileCollectorHandle.ProcessedFilesCount); dbWwriterHandle.requestStop(); dbWwriterHandle.waitForTask(); Console.WriteLine("Работа с БД закончена, вставлено строк {0}", dbWwriterHandle.InsertedFilesCount); Console.WriteLine("Время выполнения задания (мс): {0}", System.Environment.TickCount - currentTick); } catch (Exception ex) { dbWwriterHandle.writeLogInfo(ex.Message); Console.WriteLine(ex.Message); } dbHandle.Dispose(); }