static void Main(string[] args) { if (args.Length != 2) { Console.WriteLine("Need 2 arguments"); return; } _indexes = new CaseInsensitiveDictionary <bool>(); _sourceFile = args[0]; _sqlConnectionString = args[1]; try { _stopwatch = new Stopwatch(); _stopwatch.Start(); Sql2000DataProvider dataProvider = new Sql2000DataProvider(); using (_reader = new StreamReader(_sourceFile)) using (_database = new DbManager(dataProvider, _sqlConnectionString)) { Console.WriteLine ( "Started at: {0}", DateTime.Now.ToLongUniformString() ); _database .SetCommand("delete from [dbo].[irbisdata]") .ExecuteNonQuery(); Console.WriteLine("table truncated"); int mfn = 1; MarcRecord record; while ((record = ReadRecord(mfn)) != null) { try { ProcessRecord(record); } catch (Exception exception) { Console.WriteLine("[{0}] {1}", mfn, exception.Message); } mfn++; } _database .SetCommand("EXECUTE [upload_done]") .ExecuteNonQuery(); Console.WriteLine("[upload_done]"); _database .SetCommand("insert into [FlagTable] default values") .ExecuteNonQuery(); Console.WriteLine("[FlagTable]"); } _stopwatch.Stop(); TimeSpan elapsed = _stopwatch.Elapsed; Console.WriteLine ( "Elapsed: {0}", elapsed.ToAutoString() ); } catch (Exception e) { Console.WriteLine(e); } }
static void Main(string[] args) { if (args.Length != 2) { return; } _irbisConnectionString = args[0]; _sqlConnectionString = args[1]; try { _stopwatch = new Stopwatch(); _stopwatch.Start(); Sql2000DataProvider dataProvider = new Sql2000DataProvider(); using (_irbisConnection = new IrbisConnection(_irbisConnectionString)) using (_database = new DbManager(dataProvider, _sqlConnectionString)) { Console.WriteLine ( "Started at: {0}", DateTime.Now.ToLongUniformString() ); int maxMfn = _irbisConnection.GetMaxMfn(); Console.WriteLine("Max MFN={0}", maxMfn); _database .SetCommand("delete from [dbo].[irbisdata]") .ExecuteNonQuery(); Console.WriteLine("table truncated"); BatchRecordReader batch = (BatchRecordReader)BatchRecordReader.WholeDatabase ( _irbisConnection, _irbisConnection.Database, 500 ); foreach (MarcRecord record in batch) { try { ProcessRecord(record); } catch (Exception exception) { Console.WriteLine("Exception: {0}", exception.Message); Debug.WriteLine(exception); } } _database .SetCommand("EXECUTE [upload_done]") .ExecuteNonQuery(); _database .SetCommand("insert into [FlagTable] default values") .ExecuteNonQuery(); _stopwatch.Stop(); TimeSpan elapsed = _stopwatch.Elapsed; Console.WriteLine ( "Elapsed: {0}", elapsed.ToAutoString() ); } } catch (Exception exception) { Console.WriteLine(exception); } }