コード例 #1
0
        static void Main(string[] args)
        {
            var databaseScripter = new DatabaseScripter("");
            databaseScripter.Script();

            Console.WriteLine("Press any key to exit");
            Console.ReadKey();
        }
コード例 #2
0
    internal static void Main(string[] args)
    {
        if (0 == args.Length)
        {
            throw new ArgumentException("Give a database name in the command line argument.");
        }

        Console.WriteLine("/** ");
        if (1 == args.Length)
        {
            var split = args[0].Split(' ');
            if (1 < split.Length)
            {
                Console.WriteLine("split");
                args = split;
            }
        }

        var name     = args.Get("Database");
        var instance = args.Get("Instance");

        Console.WriteLine($"Database = {name}");
        Console.WriteLine($"Instance = {instance}");
        var server    = new Server(instance);
        var databases = server.Databases.Cast <Database>();
        var matches   = databases.Where((db) => String.Equals(db.Name, name));

        if (!matches.Any())
        {
            var names = string.Join(", ", databases.Select((db) => db.Name));
            throw new Exception($"Name {name} is not in {names}.");
        }
        var database = matches.Single();
        var scripter = new DatabaseScripter(database);

        foreach (var option in Arguments.FindProperties(args))
        {
            var value = option.ParseValue();
            option.property.SetValue(scripter.Options, value);
            Console.WriteLine($"{option.property.Name} = {value}");
        }
        Console.WriteLine("**/");
        foreach (var statement in scripter.GenerateScript())
        {
            Console.WriteLine(statement);
        }
    }