Esempio n. 1
0
        static int Main(string[] args)
        {
            if (!CommandLineParametersHelper.ParseArguments(args))
            {
                return 1;
            }

            MSAccessBackend msbackend = new MSAccessBackend(CommandLineParametersHelper.databaseSource);
            string TargetFile = CommandLineParametersHelper.databaseTarget;
            if (null == TargetFile)
                TargetFile = System.IO.Path.ChangeExtension(CommandLineParametersHelper.databaseSource, "db");

            if (System.IO.File.Exists(TargetFile) && CommandLineParametersHelper.erase)
                System.IO.File.Delete(TargetFile);

            SQLiteBackend backend = new SQLiteBackend(TargetFile);

            // Explore the source database to get metadata.
            SchemaTablesMetaData schemaInfo = msbackend.QuerySchemaDefinition(null);
            foreach (TableMetaData t in schemaInfo.tables)
            {
                msbackend.QueryTableDefinition(t);
            }
            if (CommandLineParametersHelper.verbose)
            {
                Console.Out.WriteLine(schemaInfo.ToString());
                Console.Out.WriteLine("There are {0} tables to convert.", schemaInfo.tables.Count);
            }

            schemaInfo.SortTablesByDependencies();

            if (CommandLineParametersHelper.verbose)
            {
                Console.Out.WriteLine("Tables will be created in this order:");
                foreach (TableMetaData t in schemaInfo.tables)
                {
                    Console.Out.Write(t.tableName + " , ");
                }
                Console.Out.WriteLine();
            }

            // Clone source db schema into target db schema (no data)
            backend.CloneSchema(schemaInfo);

            // Copy data from source db to target db
            DateTime dt1 = DateTime.Now;
            foreach (TableMetaData table in schemaInfo.tables)
            {
                Console.Out.Write("Dumping table {0}", table.tableName);
                msbackend.DumpTableContents(table, backend);
            }
            TimeSpan sp = DateTime.Now - dt1;

            Console.Out.WriteLine("Complete dump performed in {0} ", sp);

            return 0;
        }
Esempio n. 2
0
        static int Main(string[] args)
        {
            /// TESTs
            ///
            bool enableTest = false;

            if (enableTest)
            {
                UtilsTests.RunTableFindTest();
                UtilsTests.RunSwapRightJoinTest();
                return(0);
            }

            if (!CommandLineParametersHelper.ParseArguments(args))
            {
                return(1);
            }

            MSAccessBackend msbackend  = new MSAccessBackend(CommandLineParametersHelper.databaseSource);
            string          TargetFile = CommandLineParametersHelper.databaseTarget;

            if (null == TargetFile)
            {
                TargetFile = System.IO.Path.ChangeExtension(CommandLineParametersHelper.databaseSource, "db");
            }

            if (System.IO.File.Exists(TargetFile) && CommandLineParametersHelper.erase)
            {
                System.IO.File.Delete(TargetFile);
            }

            SQLiteBackend backend = new SQLiteBackend(TargetFile);

            // Explore the source database to get metadata.
            SchemaTablesMetaData schemaInfo = msbackend.QuerySchemaDefinition(null);

            foreach (TableMetaData t in schemaInfo.tables)
            {
                msbackend.QueryTableDefinition(t);
            }
            if (CommandLineParametersHelper.verbose)
            {
                Console.Out.WriteLine(schemaInfo.ToString());
                Console.Out.WriteLine("There are {0} tables to convert.", schemaInfo.tables.Count);
            }

            schemaInfo.SortTablesByDependencies();

            if (CommandLineParametersHelper.verbose)
            {
                Console.Out.WriteLine("Tables will be created in this order:");
                foreach (TableMetaData t in schemaInfo.tables)
                {
                    Console.Out.Write(t.tableName + " , ");
                }
                Console.Out.WriteLine();
            }

            // Clone source db schema into target db schema (no data)
            backend.CloneSchema(schemaInfo);

            // Copy data from source db to target db
            DateTime dt1 = DateTime.Now;

            foreach (TableMetaData table in schemaInfo.tables)
            {
                Console.Out.Write("Dumping table {0}", table.tableName);
                msbackend.DumpTableContents(table, backend);
            }
            TimeSpan sp = DateTime.Now - dt1;

            Console.Out.WriteLine("Complete dump performed in {0} ", sp);
            return(0);
        }