示例#1
0
        public static void Execute(List <string> lines)
        {
            FormDataDump frm = new FormDataDump();

            frm.tbScript.SuspendLayout();
            foreach (string line in lines)
            {
                frm.tbScript.Text += line;
            }
            frm.tbScript.ResumeLayout();
            frm.Show();
        }
示例#2
0
        private void DoMessageDump()
        {
            DBLangEngine.DatabaseType scriptDbType;
            if (FormSelectDBType.Execute(out scriptDbType))
            {
                string scriptSchema = string.Empty;
                if (scriptDbType == DBLangEngine.DatabaseType.dtMSSQL)
                {
                    scriptSchema = "[dbo].";
                }
                else if (scriptDbType == DBLangEngine.DatabaseType.dtPostgreSQL)
                {
                    scriptSchema = "public.";
                }

                List <string> sqlDump = new List <string>();

                string addStrForm = "INSERT INTO FORMITEMS(APP_FORM, ITEM, CULTURE, PROPERTYNAME, VALUETYPE, VALUE, INUSE) " + Environment.NewLine +
                                    "SELECT {0}, {1}, {2}, {3}, {4}, {5}, {6} " + Environment.NewLine +
                                    "WHERE NOT EXISTS (SELECT 1 FROM {7}FORMITEMS WHERE APP_FORM = {0} AND ITEM = {1} AND CULTURE = {2} AND PROPERTYNAME = {3}); " + Environment.NewLine +
                                    "UPDATE {7}FORMITEMS SET INUSE = {6}, VALUE = {5} WHERE APP_FORM = {0} AND ITEM = {1} AND PROPERTYNAME = {3} AND CULTURE = {2}; " + Environment.NewLine;
                string addStrMessage = "INSERT INTO {5}MESSAGES(CULTURE, MESSAGENAME, VALUE, COMMENT_EN_US, INUSE) " +
                                       "SELECT {0}, {1}, {2}, {3}, {4} " + Environment.NewLine +
                                       "WHERE NOT EXISTS (SELECT 1 FROM {5}MESSAGES WHERE MESSAGENAME = {1} AND CULTURE = {0}); " + Environment.NewLine +
                                       "UPDATE {5}MESSAGES SET VALUE = {2}, COMMENT_EN_US = {3}, INUSE = {4} WHERE MESSAGENAME = {1} AND CULTURE = {0}; " + Environment.NewLine;

                if (scriptDbType == DBLangEngine.DatabaseType.dtMySQL)
                {
                    addStrForm = "INSERT INTO FORMITEMS(APP_FORM, ITEM, CULTURE, PROPERTYNAME, VALUETYPE, VALUE, INUSE) " + Environment.NewLine +
                                 "SELECT {0}, {1}, {2}, {3}, {4}, {5}, {6} FROM DUAL " + Environment.NewLine +
                                 "WHERE NOT EXISTS (SELECT * FROM {7}FORMITEMS WHERE APP_FORM = {0} AND ITEM = {1} AND CULTURE = {2} AND PROPERTYNAME = {3}) LIMIT 1; " + Environment.NewLine +
                                 "UPDATE {7}FORMITEMS SET INUSE = {6}, VALUE = {5} WHERE APP_FORM = {0} AND ITEM = {1} AND PROPERTYNAME = {3} AND CULTURE = {2}; " + Environment.NewLine;

                    addStrMessage = "INSERT INTO {5}MESSAGES(CULTURE, MESSAGENAME, VALUE, COMMENT_EN_US, INUSE) " +
                                    "SELECT {0}, {1}, {2}, {3}, {4} FROM DUAL " + Environment.NewLine +
                                    "WHERE NOT EXISTS (SELECT * FROM {5}MESSAGES WHERE MESSAGENAME = {1} AND CULTURE = {0}) LIMIT 1; " + Environment.NewLine +
                                    "UPDATE {5}MESSAGES SET VALUE = {2}, COMMENT_EN_US = {3}, INUSE = {4} WHERE MESSAGENAME = {1} AND CULTURE = {0}; " + Environment.NewLine;
                }

                using (IDbCommand command = GetCommand())
                {
                    command.CommandText = SQLs.SelectDumpFormItems(dbType);
                    using (IDataReader dr = command.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            sqlDump.Add(string.Format(addStrForm,
                                                      DBUtils.MkStr(dr.GetString(0)),
                                                      DBUtils.MkStr(dr.GetString(1)),
                                                      DBUtils.MkStr(dr.GetString(2)),
                                                      DBUtils.MkStr(dr.GetString(3)),
                                                      DBUtils.MkStr(dr.GetString(4)),
                                                      DBUtils.MkStr(dr.GetString(5)),
                                                      dr.GetInt32(6),
                                                      scriptSchema));
                        }
                    }
                }

                using (IDbCommand command = GetCommand())
                {
                    command.CommandText = SQLs.SelectDumpMessages(dbType);
                    using (IDataReader dr = command.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            sqlDump.Add(string.Format(addStrMessage,
                                                      DBUtils.MkStr(dr.GetString(0)),
                                                      DBUtils.MkStr(dr.GetString(1)),
                                                      DBUtils.MkStr(dr.GetString(2)),
                                                      DBUtils.MkStr(dr.GetString(3)),
                                                      dr.GetInt32(4),
                                                      scriptSchema));
                        }
                    }
                }
                FormDataDump.Execute(sqlDump);
            }
        }