예제 #1
0
        private void generateScriptToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (saveFileDialogScript.ShowDialog(this) != DialogResult.OK)
            {
                return;
            }
            Dictionary <string, ITable> t = desktop.Tables;
            StreamWriter stream           = new StreamWriter(saveFileDialogScript.FileName);

            foreach (ITable table in t.Values)
            {
                List <string> l = dataFactory.GenerateScript(table);
                foreach (string s in l)
                {
                    stream.WriteLine(s);
                }
                stream.WriteLine("");
            }
            stream.Close();
        }
        /// <summary>
        /// Generates script
        /// </summary>
        /// <param name="table">Table</param>
        /// <param name="factory">Factory</param>
        /// <returns>Script</returns>
        public static List <string> GenerateScript(this ITable table, IDataSetFactory factory)
        {
            List <string> l = new List <string>();

            l.Add("CREATE TABLE dbo." + table.Name);
            l.Add("(");
            Dictionary <string, IColumn> d = table.Columns;
            int n = 0;

            foreach (string key in d.Keys)
            {
                string s = key + " " + factory.GenerateScript(d[key]);
                ++n;
                if (n < d.Count)
                {
                    s += ",";
                }
                l.Add(s);
            }
            l.Add(");");
            return(l);
        }