Example #1
0
        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);
            }
        }
Example #2
0
        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);
            }
        }