示例#1
0
        public void MakeSQLNew()
        {
            SQLScript.Clear();

            string GenName = txtGenName.Text.Trim();

            if (!string.IsNullOrEmpty(GenName))
            {
                int?NewValue       = StaticFunctionsClass.ToIntDef(txtGenNewValue.Text.Trim(), null);
                int?IncrementValue = StaticFunctionsClass.ToIntDef(txtIncrementValue.Text.Trim(), null);
                var sb             = new StringBuilder();
                sb.Append($@"CREATE SEQUENCE {GenName};{Environment.NewLine}");
                if (NewValue != null)
                {
                    string cmd = ((IncrementValue != null) && (IncrementValue.Value > 0))
                        ?$@"ALTER SEQUENCE {txtGenName.Text.Trim()} RESTART WITH {NewValue.Value} INCREMENT BY {IncrementValue.Value};{Environment.NewLine}"
                        :$@"ALTER SEQUENCE {txtGenName.Text.Trim()} RESTART WITH {NewValue.Value};{Environment.NewLine}";

                    sb.Append(cmd);
                }
                sb.Append($@"{SQLPatterns.Commit}{Environment.NewLine}{Environment.NewLine}");
                sb.Append($@"COMMENT ON GENERATOR {GenName} IS '{fctGenDescription.Text}';{Environment.NewLine}");
                sb.Append($@"{SQLPatterns.Commit}{Environment.NewLine}{Environment.NewLine}");
                SQLScript.Add(sb.ToString());
            }
            else
            {
                SQLScript.Add("/* Generator name is not defined */");
            }
            SQLToUI();
        }
示例#2
0
        private QuerySetting GetQuerySetting()
        {
            string       strName        = "ReportQuery";
            string       strDescription = UFIDA.U8.UAP.Services.ReportResource.U8ResService.GetResStringEx("U8.UAP.Services.ReportData.ConvertDataToBO.报表数据源查询");
            QuerySetting querySetting   = null;

            if (this._IsSqlQuerist)
            {
                SQLScript sQLScript = new SQLScript();
                sQLScript.SelectPart = this._SqlScript;
                querySetting         = new SQLQuerySetting(strName, sQLScript, strDescription);
            }
            else
            {
                string dllType = string.Empty;
                if (this._bVB)
                {
                    dllType = "Com";
                }
                else
                {
                    dllType = "DotNet";
                }
                querySetting = new CustomQuerySetting(strName, dllType, this._dllInfor, strDescription);
            }

            FillColumnData(querySetting);

            return(querySetting);
        }
示例#3
0
        public DBRefList <T> Retrieve <T>(Clause clause = null) where T : TableEntity
        {
            var script = new SQLScript(Accessor, Commons.Objects.Enums.SQLTYPE.SELECT);
            var from   = new FromItem <T>(Accessor);
            var select = new SelectItem(Accessor, from);

            script.AddItems(select, from);
            if (clause != null)
            {
                var where = new WhereItem(Accessor, clause, from);
                script.AddItems(where);
            }

            var list = new DBRefList <T>();

            var table = Accessor.Retrieve(script.ExportCommand());

            if (table != null && table.Rows.Count > 0)
            {
                foreach (var row in table.Rows)
                {
                    list.NewEntity().LoadFrom(row as DataRow, 0);
                }
            }
            return(list);
        }
 public void Run()
 {
     try
     {
         foreach (DictionaryEntry item in this._scriptsToExecute)
         {
             try
             {
                 SQLScript currentScript = default(SQLScript);
                 currentScript = (SQLScript)item.Value;
                 ExecuteScript(currentScript);
                 //WriteScript(item.Key, currentScript)
             }
             catch (System.Data.SqlClient.SqlException ex)
             {
                 // This line must record the failure for a later notification to user
                 throw (ex);
             }
         }
     }
     catch (Exception ex)
     {
         throw (ex);
     }
 }
示例#5
0
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                if (tbFolderName.Text.Length == 0)
                {
                    throw new Exception("SQL 文件保存目录不能为空");
                }
                string sql = "";

                if (tabControl1.SelectedTab.Name == "tabPage1")
                {
                    tbName = cbTableName.SelectedItem.ToString().Split('|')[0].Trim();


                    foreach (ListViewItem item in lvFields.Items)
                    {
                        if (item.Checked)
                        {
                            sql = sql + item.Text + ",";
                        }
                    }
                    if (sql.Trim().Length > 0)
                    {
                        sql = sql.Substring(0, sql.Length - 1);
                    }
                    else
                    {
                        throw new Exception("字段没有选择");
                    }

                    sql = "Select " + sql + " From " + tbName;
                }
                else
                {
                    if (tbSQLScript.Text.Trim().Length == 0)
                    {
                        throw new Exception("SQL script is null");
                    }
                    if (tbTableName.Text.Trim().Length == 0)
                    {
                        tbName = DateTime.Now.ToString("yyyyMMDDHHmmss");
                    }
                    else
                    {
                        tbName = tbTableName.Text.Trim();
                    }
                    sql = tbSQLScript.Text;
                }

                DataTable dt          = SQLScript.GetRecordSet(sql);
                string    txtFileName = tbFolderName.Text + "\\" + tbName + ".txt";
                ExportToTxt(dt, txtFileName);
                throw new Exception("数据文件已生成:" + txtFileName);
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);
            }
        }
            private dynamic ExecuteScript(SQLScript script)
            {
                System.Data.SqlClient.SqlConnection dbConn = new System.Data.SqlClient.SqlConnection();
                System.Data.SqlClient.SqlCommand    dbComm = new System.Data.SqlClient.SqlCommand();
                string scriptBatchContentsText             = "";

                while (script.ScriptBatchContents.Count > 0)
                {
                    scriptBatchContentsText = System.Convert.ToString(script.ScriptBatchContents.Dequeue());
                    try
                    {
                        dbConn.ConnectionString = this._connectionString;

                        dbComm.Connection  = dbConn;
                        dbComm.CommandType = CommandType.Text;
                        dbComm.CommandText = scriptBatchContentsText;

                        dbConn.Open();
                        dbComm.ExecuteNonQuery();
                    }
                    catch (Exception ex)
                    {
                        throw (ex);
                    }
                    finally
                    {
                        dbConn.Close();
                    }
                }
                return(default(dynamic));
            }
示例#7
0
        public void MakeSQOAlter()
        {
            SQLScript.Clear();
            cbCollate.Enabled = false;
            var sb = new StringBuilder();

            if (DomainObject.Name != txtName.Text)
            {
                sb.Append($@"ALTER DOMAIN {DomainObject.Name} TO {txtName.Text};");
                sb.Append($@"{SQLPatterns.Commit}{Environment.NewLine}");
            }

            sb.Append($@"ALTER DOMAIN {txtName.Text} TYPE {StaticVariablesClass.CompleteRawType(cbTypes.Text.Trim(), StaticFunctionsClass.ToIntDef(txtLength.Text.Trim(),0))}");
            if (cbCharSet.Enabled)
            {
                if (cbCharSet.Text != "NONE")
                {
                    sb.Append($@" CHARACTER SET {cbCharSet.Text}");
                }
            }
            sb.AppendLine($@";");
            sb.AppendLine($@"{SQLPatterns.Commit}{Environment.NewLine}");

            if (txtDefault.Text != DomainObject._defaultValue)
            {
                string defstr = (cbTypes.Text.IndexOf("CHAR") >= 0)   ? $@"'{txtDefault.Text}'" : txtDefault.Text;
                string cmd    = string.IsNullOrEmpty(txtDefault.Text) ? $@"ALTER DOMAIN {txtName.Text} SET DEFAULT NULL;" : $@"ALTER DOMAIN {txtName.Text} SET DEFAULT {defstr};";
                sb.AppendLine(cmd);
                sb.AppendLine($@"{SQLPatterns.Commit}{Environment.NewLine}");
            }

            if (txtCheck.Text.Length > 0)
            {
                sb.AppendLine($@"ALTER DOMAIN {txtName.Text} DROP CONSTRAINT; /* drop check constraint */");
                if (ckCheck.Checked)
                {
                    sb.AppendLine($@"ALTER DOMAIN {txtName.Text} ADD CONSTRAINT CHECK ({txtCheck.Text}); /* adds not null flag to domain */");
                }
                sb.AppendLine($@"{SQLPatterns.Commit}{Environment.NewLine}");
            }
            else if (ckCheck.Checked != DomainObject.NotNull)
            {
                sb.AppendLine($@"ALTER DOMAIN {txtName.Text} DROP CONSTRAINT; /* drop check constraint */");
                if (ckCheck.Checked)
                {
                    sb.AppendLine($@"ALTER DOMAIN {txtName.Text} ADD CONSTRAINT CHECK (VALUE IS NOT NULL); /* adds not null flag to domain */");
                }
                sb.AppendLine($@"{SQLPatterns.Commit}{Environment.NewLine}");
            }

            if (fctDescription.Text != DomainObject.Description)
            {
                sb.AppendLine($@"COMMENT ON DOMAIN {txtName.Text} IS '{fctDescription.Text}';");
                sb.AppendLine($@"{SQLPatterns.Commit}{Environment.NewLine}");
            }

            SQLScript.Add(sb.ToString());
            SQLToUI();
        }
示例#8
0
 public void Add(SQLScript item, int deep)
 {
     if (list == null) list = new List<SQLScript>();
     if (item != null)
     {
         item.Deep = deep;
         list.Add(item);
     }
 }
示例#9
0
        public void MakeSQLNew()
        {
            SQLScript.Clear();
            //ckPrimary.Visible = true;
            StringBuilder sb = new StringBuilder();

            /*
             * CREATE UNIQUE INDEX TLAGERDEF_IDX1
             * ON TLAGERDEF(TLAGER_ID, POSX, POSY, POSZ)
             */


            if (ckPrimary.Checked)
            {
                sb.Append($@"ALTER TABLE {TableName} ADD PRIMARY KEY");
                string fieldStr = GetFields();

                if (rbSortAscending.Checked)
                {
                    fieldStr += $@" {StaticVariablesClass.ASCStr}";
                }
                if (rbSortDescending.Checked)
                {
                    fieldStr += $@" {StaticVariablesClass.DECStr}";
                }
                fieldStr += ";";
                sb.Append(fieldStr);
            }
            else
            {
                sb.Append($@"{StaticVariablesClass.CREATEStr} ");
                if (cbUnique.Checked)
                {
                    sb.Append($@"{StaticVariablesClass.UNIQUEStr} ");
                }
                if (rbSortAscending.Checked)
                {
                    sb.Append($@"{StaticVariablesClass.ASCStr} ");
                }
                else if (rbSortDescending.Checked)
                {
                    sb.Append($@"{StaticVariablesClass.DECStr} ");
                }

                sb.Append("INDEX ");
                sb.Append(txtIndexName.Text.Trim());
                sb.Append(" ON ");
                sb.Append(TableName);

                string fieldStr = GetFields();
                sb.Append(fieldStr);
            }
            SQLScript.Add(sb.ToString());
            SQLScript.Add($@"{SQLPatterns.Commit}");
            SQLToUI();
        }
示例#10
0
        public void MakeNotNullAlter(bool isPrimary)
        {
            // ALTER TABLE TADRESSEN ALTER POSTFACH TO POSTFACHX
            // COMMENT ON COLUMN TADRESSEN.POSTFACHX IS '123'

            // ALTER TABLE Customer CHANGE Address Addr char(50); feldnamen ändern
            // ALTER TABLE t1 ALTER c_temp TO c1;
            // ALTER TABLE t1 ALTER c1 TYPE char(90);
            fctSQL.BackColor = SystemColors.Info;
            SQLScript.Clear();
            gbCollate.Enabled     = false;
            gbNULLDefault.Enabled = true;

            bool FieldNameChanged = (OrgFieldObject.Name != FieldObject.Name);
            bool FieldTypeChanged = ((OrgFieldObject.Domain.FieldType != FieldObject.Domain.FieldType) ||
                                     (OrgFieldObject.Domain.Precision != FieldObject.Domain.Precision) ||
                                     (OrgFieldObject.Domain.Scale != FieldObject.Domain.Scale) ||
                                     (OrgFieldObject.Domain.Length != FieldObject.Domain.Length) ||
                                     (OrgFieldObject.Domain.CharSet != FieldObject.Domain.CharSet) ||
                                     (OrgFieldObject.Domain.Collate != FieldObject.Domain.Collate));

            bool PrimaryKeyChanged  = (OrgFieldObject.IsPrimary != FieldObject.IsPrimary);
            bool IsNUllChanged      = (OrgFieldObject.Domain.NotNull != FieldObject.Domain.NotNull);
            bool PositionChanged    = ((OrgFieldObject.Position != FieldObject.Position) && (FieldObject.Position > 0));
            bool DefaultChanged     = (OrgFieldObject.Domain.DefaultValue != FieldObject.Domain.DefaultValue);
            bool DescriptionChanged = (OrgFieldObject.Description != FieldObject.Description);



            if (!string.IsNullOrEmpty(txtNULLDefault.Text))
            {
                SQLScript.Add(Environment.NewLine);
                SQLScript.Add(SQLPatterns.UpdateFieldData.Replace(SQLPatterns.TableKey, TableObject.Name).Replace(SQLPatterns.ColumnKey, FieldObject.Name).Replace(SQLPatterns.ValueKey, txtNULLDefault.Text));
                SQLScript.Add($@"{Environment.NewLine}{SQLPatterns.Commit}{Environment.NewLine}");
            }

//            if (IsNUllChanged && (tabControlFieldTypes.SelectedTab == tabPageFieldType)) // && (TableObject.IsNotNull(FieldObject.Name) != cbNotNull.Checked))
            {
                // alter table tartikel alter datum set not null;
                SQLScript.Add(Environment.NewLine);
                if (!isPrimary)
                {
                    string cmd1 = SQLPatterns.AlterTableFieldSetNull.Replace(SQLPatterns.TableKey, TableObject.Name).Replace(SQLPatterns.ColumnKey, FieldObject.Name);
                    SQLScript.Add(cmd1);
                    SQLScript.Add($@"{Environment.NewLine}{SQLPatterns.Commit}{Environment.NewLine}");
                }
                string cmd2 = SQLPatterns.AlterTableFieldSetNotNull.Replace(SQLPatterns.TableKey, TableObject.Name).Replace(SQLPatterns.ColumnKey, FieldObject.Name);
                SQLScript.Add(cmd2);
                SQLScript.Add($@"{Environment.NewLine}{SQLPatterns.Commit}{Environment.NewLine}");
            }



            SQLToUI();
        }
示例#11
0
        private void SQLGenerator_Load(object sender, EventArgs e)
        {
            DataTable dt = SQLScript.GetTableList();

            foreach (DataRow row in dt.Rows)
            {
                cbTableName.Items.Add(row["name"].ToString() + "                                        |" + row["id"].ToString());
            }

            lvFields.View = View.Details;//设置视图
            lvFields.Columns.Add("Field Name", lvFields.Width / 2, HorizontalAlignment.Center);
            lvFields.Columns.Add("DataType", lvFields.Width / 2 - 10, HorizontalAlignment.Center);
        }
示例#12
0
        public void MakeSQLNew()
        {
            SQLScript.Clear();
            //ckPrimary.Visible = true;
            StringBuilder sb = new StringBuilder();

            /*
             * CREATE UNIQUE INDEX TLAGERDEF_IDX1
             * ON TLAGERDEF(TLAGER_ID, POSX, POSY, POSZ)
             */


            if (ckPrimary.Checked)
            {
                sb.Append($@"ALTER TABLE {_tableObject.Name} ADD PRIMARY KEY");
                string fieldStr = GetFields();
                if (((eSort)cbSorting.SelectedItem) != eSort.NONE)
                {
                    fieldStr += $@" {EnumHelper.GetDescription((eSort)cbSorting.SelectedItem)}";
                }

                fieldStr += ";";
                sb.Append(fieldStr);
            }
            else
            {
                sb.Append($@"{StaticVariablesClass.CREATEStr} ");
                if (cbUnique.Checked)
                {
                    sb.Append($@"{StaticVariablesClass.UNIQUEStr} ");
                }
                if (((eSort)cbSorting.SelectedItem) != eSort.NONE)
                {
                    sb.Append($@"{EnumHelper.GetDescription((eSort)cbSorting.SelectedItem)} ");
                }

                sb.Append("INDEX ");
                sb.Append(txtIndexName.Text.Trim());
                sb.Append(" ON ");
                sb.Append(_tableObject.Name);

                string fieldStr = GetFields();
                sb.Append(fieldStr);
                sb.Append(";");
            }
            SQLScript.Add(sb.ToString());
            SQLScript.Add($@"{SQLPatterns.Commit}");
            SQLToUI();
        }
示例#13
0
        public void MakeSQLNew()
        {
            SQLScript.Clear();
            cbCollate.Enabled = true;
            var sb = new StringBuilder();

            sb.Append($@"CREATE DOMAIN {txtName.Text} AS ");
            sb.Append($@"{StaticVariablesClass.CompleteRawType(cbTypes.Text.Trim(), StaticFunctionsClass.ToIntDef(txtLength.Text.Trim(), 0))}");
            if (cbCharSet.Enabled)
            {
                if (cbCharSet.Text != "NONE")
                {
                    sb.Append($@" CHARACTER SET {cbCharSet.Text}");
                }
            }
            if (cbCollate.Enabled)
            {
                if (cbCollate.Text != "NONE")
                {
                    sb.Append($@" COLLATE {cbCollate.Text}");
                }
            }
            if (!string.IsNullOrEmpty(txtDefault.Text))
            {
                sb.Append($@" DEFAULT  '{txtDefault.Text}'");
            }

            sb.AppendLine($@";");
            sb.Append($@"{SQLPatterns.Commit}{Environment.NewLine}");

            if (cbNotNull.Checked)
            {
                sb.AppendLine($@"ALTER DOMAIN {txtName.Text} ADD CONSTRAINT CHECK (VALUE IS NOT NULL); /* adds not null flag to domain */");
                sb.AppendLine($@"{SQLPatterns.Commit}{Environment.NewLine}");
            }


            if (!string.IsNullOrEmpty(fctDescription.Text))
            {
                sb.AppendLine($@"COMMENT ON DOMAIN {txtName.Text} IS '{fctDescription.Text}';");
                sb.Append($@"{SQLPatterns.Commit}{Environment.NewLine}");
            }

            SQLScript.Add(sb.ToString());
            SQLToUI();
        }
示例#14
0
        public static void OnGUI(ModEntry entry)
        {
            if (Settings.DeveloperMode)
            {
                GUILayout.Label("### Create Key (key, eng, kor)");

                GUILayout.BeginHorizontal();
                for (int i = 0; i < 3; i++)
                {
                    values[i] = GUILayout.TextField(values[i]);
                }

                if (GUILayout.Button("Apply"))
                {
                    SQLValue value = new SQLValue(values[0], values[1], values[2]);
                    SQLScript.InsertKey(value);
                }
                GUILayout.EndHorizontal();

                GUILayout.Label("### Remove Key (key)");

                GUILayout.BeginHorizontal();
                values[3] = GUILayout.TextField(values[3]);

                if (GUILayout.Button("Apply"))
                {
                    SQLScript.DeleteKey(values[3]);
                }
                GUILayout.EndHorizontal();

                GUILayout.Label("### Get Key Result: ");
                GUILayout.Label(BEString.Get(values[4], SystemLanguage.English));
                GUILayout.Label(BEString.Get(values[4], SystemLanguage.Korean));

                values[4] = GUILayout.TextField(values[4]);

                GUILayout.Space(20f);

                Settings.TestValue = GUILayout.TextField(Settings.TestValue);

                GUILayout.Space(20f);
            }
        }
            private void WriteScript(string ScriptName, SQLScript script)
            {
                try
                {
                    IEnumerator   ienum    = script.ScriptBatchContents.GetEnumerator();
                    StringBuilder strBldr  = default(StringBuilder);
                    string        testPath = System.AppDomain.CurrentDomain.BaseDirectory + ScriptName + ".txt";

                    while (ienum.MoveNext())
                    {
                        strBldr = (System.Text.StringBuilder)ienum.Current;
                        StreamWriter wr = new StreamWriter(testPath, true);
                        wr.Write(strBldr.ToString());
                        wr.Close();
                    }
                }
                catch (Exception ex)
                {
                    throw (ex);
                }
            }
示例#16
0
        private void cbTableName_SelectedValueChanged(object sender, EventArgs e)
        {
            lvFields.Items.Clear();

            if (cbTableName.SelectedItem == null)
            {
                return;
            }
            string    tbID = cbTableName.SelectedItem.ToString().Split('|')[1].Trim();
            DataTable dt   = SQLScript.GetTableFiedList(tbID);

            foreach (DataRow row in dt.Rows)
            {
                var item = new ListViewItem();
                item.Text = row["name"].ToString();
                string result = row["xtype"].ToString();
                item.Checked = true;
                item.SubItems.Add(result);
                lvFields.Items.Add(item);
            }
        }
示例#17
0
        public bool MakeSQLNew()
        {
            string active         = TriggerObject.Active ? "ACTIVE" : "DEACTIVE";
            string triggerTypeStr = EnumHelper.GetDescription(TriggerObject.Type); // StaticVariablesClass.GetTriggerTypeStr(TriggerObject.Type);

            SQLScript.Clear();
            StringBuilder sb = new StringBuilder();

            sb.Append($@"{SQLPatterns.SetTermStart}{Environment.NewLine}");
            sb.Append($@"CREATE TRIGGER {TriggerObject.Name} ");
            sb.Append($@"FOR {TriggerObject.RelationName}");
            sb.Append($@"{Environment.NewLine}{active} ");
            sb.Append($@"{triggerTypeStr} ");
            sb.Append($@"POSITION {TriggerObject.Sequence}");
            sb.Append($@"{Environment.NewLine}{TriggerObject.Source}{Environment.NewLine}");
            sb.Append($@"^{Environment.NewLine}");
            sb.Append($@"{SQLPatterns.SetTermEnd}{Environment.NewLine}");
            SQLScript.Add(sb.ToString());
            SQLScript.Add($@"{Environment.NewLine}{SQLPatterns.Commit}");

            SQLToUI();
            return(true);
        }
 private void GetScriptsFromFileList()
 {
     try
     {
         if (this._scriptsToExecute == null)
         {
             _scriptsToExecute = new SortedList();
         }
         foreach (DictionaryEntry item in this._fileList)
         {
             try
             {
                 SQLScript currentscript = new SQLScript(System.Convert.ToString(item.Value));
                 _scriptsToExecute.Add(currentscript.FileName, currentscript);
             }
             catch (Exception)
             {
             }
         }
     }
     catch (Exception)
     {
     }
 }
        private void PrepareScripts(ScriptingOptions scriptingOptions)
        {
            try
            {
                List <Action> actions  = new List <Action>();
                Server        myServer = new Server(DatabaseServer.Server);

                myServer.ConnectionContext.ConnectionString = SQLHelper.CreateNewConnection(DatabaseServer).ConnectionString;
                myServer.ConnectionContext.Connect();

                if (myServer.ConnectionContext.IsOpen)
                {
                    Database myDatabase = myServer.Databases[DatabaseServer.Database];

                    Scripter scripter = new Scripter(myServer);

                    ScriptingOptions createOptions   = scriptingOptions;
                    ScriptingOptions rollBackOptions = scriptingOptions;
                    rollBackOptions.ScriptDrops = true;

                    string rootDirectory = Path.Combine(Path.GetDirectoryName(createOptions.FileName), myDatabase.Name);

                    string rollbackFileName = string.Format("{0}_Rollback{1}", Path.GetFileNameWithoutExtension(scriptingOptions.FileName), Path.GetExtension(scriptingOptions.FileName));
                    rollBackOptions.FileName = Path.Combine(rootDirectory, rollbackFileName);

                    actions.Clear();
                    foreach (var sqlObject in SqlObjects)
                    {
                        actions.Add(() =>
                        {
                            if (SingleFilePerObject)
                            {
                                string directory = Path.Combine(rootDirectory, sqlObject.Type);
                                if (!Directory.Exists(directory))
                                {
                                    Directory.CreateDirectory(directory);
                                }

                                createOptions.FileName = Path.Combine(
                                    directory,
                                    sqlObject.ToString() + ".sql"
                                    );
                            }

                            createOptions.FileName   = createOptions.FileName.NextAvailableFilename();
                            rollBackOptions.FileName = rollBackOptions.FileName.NextAvailableFilename();

                            // Update the status of scripting
                            lblScriptingStatus.SynchronizedInvoke(() =>
                            {
                                lblScriptingStatus.Text = "Scripting : (" + (SqlObjects.IndexOf(sqlObject) + 1) + "/" + SqlObjects.Count + ") " + sqlObject.ToString();
                                lblScriptingStatus.Refresh();
                            });

                            //Insert Comments
                            //AppendTextToFile(createOptions.FileName, "-- ***********************");
                            //AppendTextToFile(createOptions.FileName, "-- CREATE Script for : " + sqlObject.ToString());
                            //AppendTextToFile(createOptions.FileName, "-- ***********************");

                            //AppendTextToFile(rollBackOptions.FileName, "-- ***********************");
                            //AppendTextToFile(rollBackOptions.FileName, "-- DROP Script for : " + sqlObject.ToString());
                            //AppendTextToFile(rollBackOptions.FileName, "-- ***********************");

                            switch (sqlObject.Type)
                            {
                            case "TABLEWTIRGGERS":
                                SQLScript.ScriptTables(myDatabase, createOptions, rollBackOptions, sqlObject.Name, sqlObject.Schema);
                                SQLScript.ScriptTriggers(myDatabase, createOptions, rollBackOptions, sqlObject.Name, null, sqlObject.Schema);
                                break;

                            case "USER_TABLE":
                                SQLScript.ScriptTables(myDatabase, createOptions, rollBackOptions, sqlObject.Name, sqlObject.Schema);
                                break;

                            case "SQL_TRIGGER":
                                SQLScript.ScriptTriggers(myDatabase, createOptions, rollBackOptions, sqlObject.Name, sqlObject.Name,
                                                         sqlObject.Schema);
                                break;

                            case "SQL_STORED_PROCEDURE":
                                SQLScript.ScriptStoredProcedure(myDatabase, createOptions, rollBackOptions, sqlObject.Name, sqlObject.Schema);
                                break;

                            case "SQL_TABLE_VALUED_FUNCTION":
                                SQLScript.ScriptUserDefinedFunctions(myDatabase, createOptions, rollBackOptions, sqlObject.Name, sqlObject.Schema);
                                break;

                            case "SQL_SCALAR_FUNCTION":
                                SQLScript.ScriptUserDefinedFunctions(myDatabase, createOptions, rollBackOptions, sqlObject.Name, sqlObject.Schema);
                                break;
                            }
                        });
                    }
                    actions.Add(() =>
                    {
                        lblScriptingStatus.Text = "Success : Successfully completed scripting.";
                    });
                    ((EzScriptForm)Application.OpenForms["EzScriptForm"]).helper.SetActionsTodo(actions);
                    ((EzScriptForm)Application.OpenForms["EzScriptForm"]).backgroundWorkerExample.RunWorkerAsync();
                }
            }
            catch (Exception ex)
            {
                lblScriptingStatus.Text = "Error : " + ex.Message;
                lblScriptingStatus.Refresh();
            }
        }
示例#20
0
        public void MakeSQLNew()
        {
            SQLScript.Clear();
            //ckPrimary.Visible = true;
            StringBuilder sb = new StringBuilder();

            /*
             * CREATE UNIQUE INDEX TLAGERDEF_IDX1
             * ON TLAGERDEF(TLAGER_ID, POSX, POSY, POSZ)
             */


            if (ckPrimary.Checked)
            {
                sb.Append($@"ALTER TABLE {TableName} ADD PRIMARY KEY ");
                bool   firstdone = false;
                string fieldStr  = string.Empty;
                fieldStr += "(";
                foreach (ListViewItem lvi in lvFields.Items)
                {
                    if (firstdone)
                    {
                        fieldStr += ",";
                    }

                    string st = lvi.Text;

                    fieldStr += st;
                    firstdone = true;
                }
                fieldStr += ")";
                fieldStr += ";";
                sb.Append(fieldStr);
            }
            else
            {
                sb.Append("CREATE ");
                if (cbUnique.Checked)
                {
                    sb.Append("UNIQUE ");
                }
                sb.Append("INDEX ");
                sb.Append(txtIndexName.Text.Trim());
                sb.Append(" ON ");
                sb.Append(TableName);
                sb.Append("(");

                bool firstdone = false;
                foreach (ListViewItem lvi in lvFields.Items)
                {
                    if (firstdone)
                    {
                        sb.Append(",");
                    }

                    string st = lvi.Text;

                    sb.Append(st);
                    firstdone = true;
                }
                sb.Append(");");
            }
            SQLScript.Add(sb.ToString());
            SQLScript.Add("COMMIT;");
            SQLToUI();
        }
示例#21
0
        public void MakeSQOAlter()
        {
            // ALTER TABLE TADRESSEN ALTER POSTFACH TO POSTFACHX
            // COMMENT ON COLUMN TADRESSEN.POSTFACHX IS '123'

            // ALTER TABLE Customer CHANGE Address Addr char(50); feldnamen ändern
            // ALTER TABLE t1 ALTER c_temp TO c1;
            // ALTER TABLE t1 ALTER c1 TYPE char(90);
            fctSQL.BackColor = SystemColors.Info;
            SQLScript.Clear();
            gbCollate.Enabled     = false;
            gbNULLDefault.Enabled = true;

            bool FieldNameChanged = (OrgFieldObject.Name != FieldObject.Name);
            bool FieldTypeChanged = ((OrgFieldObject.Domain.FieldType != FieldObject.Domain.FieldType) ||
                                     (OrgFieldObject.Domain.Precision != FieldObject.Domain.Precision) ||
                                     (OrgFieldObject.Domain.Scale != FieldObject.Domain.Scale) ||
                                     (OrgFieldObject.Domain.Length != FieldObject.Domain.Length) ||
                                     (OrgFieldObject.Domain.CharSet != FieldObject.Domain.CharSet) ||
                                     (OrgFieldObject.Domain.Collate != FieldObject.Domain.Collate));

            bool PrimaryKeyChanged  = (OrgFieldObject.IsPrimary != FieldObject.IsPrimary);
            bool IsNUllChanged      = (OrgFieldObject.Domain.NotNull != FieldObject.Domain.NotNull);
            bool PositionChanged    = ((OrgFieldObject.Position != FieldObject.Position) && (FieldObject.Position > 0));
            bool DefaultChanged     = (OrgFieldObject.Domain.DefaultValue != FieldObject.Domain.DefaultValue);
            bool DescriptionChanged = (OrgFieldObject.Description != FieldObject.Description);

            if (FieldNameChanged)
            {
                SQLScript.Add(SQLPatterns.AlterTableRenameField.Replace(SQLPatterns.TableKey, TableObject.Name).Replace(SQLPatterns.ColumnKey, OrgFieldObject.Name).Replace(SQLPatterns.ColumnKey2, FieldObject.Name));
                SQLScript.Add($@"{Environment.NewLine}{SQLPatterns.Commit}{Environment.NewLine}{Environment.NewLine}");
            }

            if (FieldTypeChanged)
            {
                var sb = new StringBuilder($@"ALTER TABLE {TableObject.Name} ALTER {FieldObject.Name}");
                if (tabControlFieldTypes.SelectedTab == tabPageFieldType)
                {
                    var FieldType = GetTypeString((DBDataTypes)cbFieldTypes.SelectedItem, txtLength.Text, txtPrecisionLength.Text, txtScale.Text);
                    sb.Append($@" TYPE {FieldType}");

                    //Fieldinfo for domain
                    Type tp = cbFieldTypes.SelectedItem.GetType();
                    if (tp == typeof(DBVarchar))
                    {
                        int    len   = StaticFunctionsClass.ToIntDef(txtLength.Text, 0);
                        string btstr = (len > 0) ? $@" CHARACTER SET {cbCharSet.Text}" : $@" COLLATE {cbCollate.Text}";
                        sb.Append(btstr);
                    }
                    else if (tp == typeof(DBBlob))
                    {
                        int    len   = StaticFunctionsClass.ToIntDef(txtBlobSize.Text, 0);
                        string btstr = (cbBlobType.Text == "TEXT") ? $@" SUB_TYPE 1" : $@" SUB_TYPE 0";
                        sb.Append(btstr);
                        if (len > 0)
                        {
                            sb.Append($@" SEGMENT SIZE {len}");
                        }
                    }

                    if (!sb.ToString().EndsWith(";"))
                    {
                        sb.Append(";");
                    }
                    SQLScript.Add(sb.ToString());

                    SQLScript.Add($@"{Environment.NewLine}{SQLPatterns.Commit}{Environment.NewLine}");
                }
                else
                {
                    var Domain = ((cbDOMAIN.SelectedItem != null) && (cbDOMAIN.Text.Length > 0))  ? cbDOMAIN.SelectedItem as DomainClass : null;

                    if (Domain != null)
                    {
                        var FieldType = (Domain != null) ? Domain.Name : cbDOMAIN.Text;

                        string cmd = (Domain != null)
                            ? $@" {FieldType}  /* raw:{Domain.RawType} intern:[{Domain.FieldType}] */"
                            : $@" {FieldType} /* {GetTypeString((DBDataTypes) cbFieldTypes.SelectedItem, txtLength.Text, txtPrecisionLength.Text, txtScale.Text)} */";
                        sb.Append(cmd);

                        //Fieldinfo for domain
                        if (Domain.FieldType == "VARYING")
                        {
                            if ((Domain.CharSet.Length > 0) || (Domain.Collate.Length > 0))
                            {
                                sb.Append(" /*");
                            }
                            if (Domain.CharSet.Length > 0)
                            {
                                sb.Append($@" CHARACTER SET {Domain.CharSet}");
                            }

                            if (Domain.Collate.Length > 0)
                            {
                                sb.Append($@" COLLATE {Domain.Collate}");
                            }
                            if ((Domain.CharSet.Length > 0) || (Domain.Collate.Length > 0))
                            {
                                sb.Append(" */");
                            }
                        }
                        SQLScript.Add(sb.ToString());
                        SQLScript.Add($@"{Environment.NewLine}{SQLPatterns.Commit}{Environment.NewLine}");
                    }
                }
            }

            if (!string.IsNullOrEmpty(txtNULLDefault.Text))
            {
                SQLScript.Add(Environment.NewLine);
                SQLScript.Add(SQLPatterns.UpdateFieldData.Replace(SQLPatterns.TableKey, TableObject.Name).Replace(SQLPatterns.ColumnKey, FieldObject.Name).Replace(SQLPatterns.ValueKey, txtNULLDefault.Text));
                SQLScript.Add($@"{Environment.NewLine}{SQLPatterns.Commit}{Environment.NewLine}");
            }

            if (IsNUllChanged && (tabControlFieldTypes.SelectedTab == tabPageFieldType)) // && (TableObject.IsNotNull(FieldObject.Name) != cbNotNull.Checked))
            {
                // alter table tartikel alter datum set not null;
                SQLScript.Add(Environment.NewLine);
                string cmd = (FieldObject.Domain.NotNull)
                    ? SQLPatterns.AlterTableFieldSetNotNull.Replace(SQLPatterns.TableKey, TableObject.Name).Replace(SQLPatterns.ColumnKey, FieldObject.Name)
                    : SQLPatterns.AlterTableFieldSetNull.Replace(SQLPatterns.TableKey, TableObject.Name).Replace(SQLPatterns.ColumnKey, FieldObject.Name);

                SQLScript.Add(cmd);
                SQLScript.Add($@"{Environment.NewLine}{SQLPatterns.Commit}{Environment.NewLine}");
            }

            //  ALTER TABLE EMPLOYEE ADD PRIMARY KEY(SSN)
            if (PrimaryKeyChanged)
            {
                if (FieldObject.IsPrimary)
                {
                    SQLScript.Add(Environment.NewLine);
                    string cmd = SQLPatterns.AlterTableAddPK.Replace(SQLPatterns.TableKey, TableObject.Name).Replace(SQLPatterns.ColumnKey, FieldObject.Name).Replace(SQLPatterns.PrimaryKey, FieldObject.PK_ConstraintName);
                    SQLScript.Add(cmd);
                    SQLScript.Add($@"{Environment.NewLine}{SQLPatterns.Commit}{Environment.NewLine}");
                }
                else if (!string.IsNullOrEmpty(FieldObject.PK_ConstraintName))
                {
                    SQLScript.Add(Environment.NewLine);
                    string cmd = SQLPatterns.AlterTableDropPK.Replace(SQLPatterns.TableKey, TableObject.Name).Replace(SQLPatterns.PrimaryKey, FieldObject.PK_ConstraintName);
                    SQLScript.Add(cmd);
                    SQLScript.Add($@"{Environment.NewLine}{SQLPatterns.Commit}{Environment.NewLine}");
                }
            }


            if (PositionChanged)
            {
                string sql = SQLPatterns.PositionSchablone.Replace(SQLPatterns.TableKey, TableObject.Name).Replace(SQLPatterns.ColumnKey, FieldObject.Name).Replace(SQLPatterns.PositionKey, $@"{FieldObject.Position}");

                SQLScript.Add(Environment.NewLine);
                SQLScript.Add(sql);
                SQLScript.Add($@"{Environment.NewLine}{SQLPatterns.Commit}{Environment.NewLine}");
            }

            if (DefaultChanged)
            {
                // alter table tartikel alter id set default 1;
                string cmd = (txtDefault.Text.Length > 0)
                    ? $@"{SQLPatterns.AlterTableSetDefault.Replace(SQLPatterns.TableKey,TableObject.Name).Replace(SQLPatterns.ColumnKey,FieldObject.Name).Replace(SQLPatterns.DefaultKey,txtDefault.Text)}"
                    : $@"{SQLPatterns.AlterTableDropDefault.Replace(SQLPatterns.TableKey,TableObject.Name).Replace(SQLPatterns.ColumnKey,FieldObject.Name)}";

                SQLScript.Add(Environment.NewLine);
                SQLScript.Add(cmd);
                SQLScript.Add($@"{Environment.NewLine}{SQLPatterns.Commit}{Environment.NewLine}");
            }

            if ((DescriptionChanged) && (fctDescription.Text != FieldObject.Description))
            {
                SQLScript.Add(Environment.NewLine);
                SQLScript.Add($@"COMMENT ON COLUMN {TableObject.Name}.{txtFieldName.Text.Trim()} IS '{fctDescription.Text}';");
                SQLScript.Add($@"{Environment.NewLine}{SQLPatterns.Commit}{Environment.NewLine}");
            }
            SQLToUI();
        }
示例#22
0
        public void MakeSQLNew()
        {
            fctSQL.BackColor = Color.Bisque;
            SQLScript.Clear();
            gbCollate.Enabled     = true;
            gbNULLDefault.Enabled = false;
            if (string.IsNullOrEmpty(txtFieldName.Text))
            {
                SQLScript.Add("/*  FieldName is undefined */");
                SQLToUI();
                return;
            }

            bool FieldTypeChaned    = (OrgFieldObject.Name != FieldObject.Name);
            bool PrimaryKeyChanged  = (OrgFieldObject.IsPrimary != FieldObject.IsPrimary);
            bool IsNUllChanged      = (OrgFieldObject.Domain.NotNull != FieldObject.Domain.NotNull);
            bool PositionChanged    = ((OrgFieldObject.Position != FieldObject.Position) && (FieldObject.Position > 0));
            bool DefaultChanged     = (OrgFieldObject.Domain.DefaultValue != FieldObject.Domain.DefaultValue);
            bool DescriptionChanged = (OrgFieldObject.Description != FieldObject.Description);

            var    sb        = new StringBuilder();
            string FieldName = txtFieldName.Text;

            sb.Append($@"ALTER TABLE {TableObject.Name} ADD {FieldName} ");

            if (tabControlFieldTypes.SelectedTab == tabPageFieldType)
            {
                var FieldType = GetTypeString((DBDataTypes)cbFieldTypes.SelectedItem, txtLength.Text, txtPrecisionLength.Text, txtScale.Text);
                sb.Append($@" {FieldType}");
                Type tp = cbFieldTypes.SelectedItem.GetType();
                if (tp == typeof(DBVarchar))
                {
                    //Lege Column mit Datentyp an
                    if (cbCharSet.Text.Length > 0)
                    {
                        sb.Append($@" CHARACTER SET {cbCharSet.Text}");
                    }
                    if (cbCollate.Text.Length > 0)
                    {
                        sb.Append($@" COLLATE {cbCollate.Text}");
                    }
                }
                else if (cbFieldTypes.Text == "BLOB")
                {
                    // BLOB SUB_TYPE 0 SEGMENT SIZE 80
                    int st = 0;
                    if (cbBlobType.Text == "TEXT")
                    {
                        st = 1;
                    }
                    if (cbBlobType.Text == "BINARY")
                    {
                        st = 0;
                    }

                    sb.Append($@" SUB_TYPE {st}");
                    int len = StaticFunctionsClass.ToIntDef(txtBlobSize.Text, 0);
                    if (len > 0)
                    {
                        sb.Append($@" SEGMENT SIZE {len}");
                    }
                }
            }
            else //Domain
            {
                var Domain = ((cbDOMAIN.SelectedItem != null) && (cbDOMAIN.Text.Length > 0))
                    ? cbDOMAIN.SelectedItem as DomainClass : null;

                FieldName = (Domain != null) ? Domain.Name : cbDOMAIN.Text;

                string cmd = (Domain != null)
                        ? $@" {FieldName}  /* raw:{Domain.RawType} intern:[{Domain.FieldType}] */"
                        : $@" {FieldName} /* {GetTypeString((DBDataTypes) cbFieldTypes.SelectedItem, txtLength.Text, txtPrecisionLength.Text, txtScale.Text)} */";
                sb.Append(cmd);

                if (Domain != null)
                {
                    if (Domain.FieldType == "VARYING")
                    {
                        sb.Append(" /* domain */ ");
                    }
                }
            }

            if (txtDefault.Text.Length > 0)
            {
                sb.Append($@" DEFAULT '{txtDefault.Text.Trim()}'");
            }

            if (cbNotNull.Checked)
            {
                sb.Append(" NOT NULL");
            }

            sb.Append(";");
            SQLScript.Add(sb.ToString());

            SQLScript.Add($@"{Environment.NewLine}{SQLPatterns.Commit}{Environment.NewLine}");
            if (cbPrimaryKey.Checked)
            {
                SQLScript.Add($@"{Environment.NewLine}");
                string cmd = SQLPatterns.AlterTableAddPK.Replace(SQLPatterns.TableKey, TableObject.Name).Replace(SQLPatterns.ColumnKey, FieldName).Replace(SQLPatterns.PrimaryKey, txtPK.Text);
                //SQLScript.Add($@"ALTER TABLE INVOICE ADD CONSTRAINT {txtPK.Text} PRIMARY KEY ({FieldName})");
                SQLScript.Add($@"{Environment.NewLine}{SQLPatterns.Commit}{Environment.NewLine}");
            }

            //COMMENT ON COLUMN TADRESSEN.TTT IS '  rrrrrrrrrrrrrrrr'
            if (fctDescription.Text.Length > 0)
            {
                SQLScript.Add($@"{Environment.NewLine}");
                SQLScript.Add(SQLPatterns.AlterTableColumnComment.Replace(SQLPatterns.TableKey, TableObject.Name).Replace(SQLPatterns.ColumnKey, FieldName).Replace(SQLPatterns.DescriptionKey, fctDescription.Text));
                SQLScript.Add($@"{Environment.NewLine}{SQLPatterns.Commit}{Environment.NewLine}");
            }

            int pos = StaticFunctionsClass.ToIntDef(txtPosition.Text, 0);

            if (pos > 0)
            {
                string sql = SQLPatterns.PositionSchablone.Replace(SQLPatterns.TableKey, TableObject.Name).Replace(SQLPatterns.ColumnKey, FieldName).Replace(SQLPatterns.PositionKey, $@"{pos-1}");
                SQLScript.Add($@"{Environment.NewLine}");
                SQLScript.Add(sql);
                SQLScript.Add($@"{Environment.NewLine}{SQLPatterns.Commit}{Environment.NewLine}");
            }
            SQLToUI();
        }
示例#23
0
 public static void Setup(ModEntry entry)
 {
     SQLScript.Setup(entry.Path); //ok
 }
示例#24
0
 public void Add(SQLScript item)
 {
     if (list == null) list = new List<SQLScript>();
     if (item != null) list.Add(item);
 }
示例#25
0
 public static string Get(string key, SystemLanguage language)
 {
     return(SQLScript.GetReaderResult(key, ToSupportedLanguage(language)) ?? $"no such key '{key}'");
 }
示例#26
0
        public void MakeSQLNew(bool force = false)
        {
            DomainClass Domain = null;

            if ((cbDOMAIN.SelectedItem != null) && (cbDOMAIN.Text.Length > 0))
            {
                Domain = cbDOMAIN.SelectedItem as DomainClass;
            }

            if (Domain == null)
            {
                tabControlFld.SelectedTab = tabPageField;
            }

            bool usefieldtype = tabControlFld.SelectedTab == tabPageField;

            SQLScript.Clear();
            var sb = new StringBuilder();

            sb.Append($@"CREATE TABLE {_tableObject.Name}{Environment.NewLine}({Environment.NewLine}    {txtFieldName.Text} ");

            if (!usefieldtype)
            {
                string cmd = (Domain != null)
                    ? $@"{Domain.Name}"
                    : $@"{cbDOMAIN.Text}";
                sb.Append(cmd);
                //Anlegen mit domain -> keine collation und charset...
                if ((!usefieldtype) && (Domain.FieldType == "VARYING"))
                {
                    sb.Append(" /* domain */ ");
                }

                if (cbPrimaryKey.Checked)
                {
                    sb.Append(" PRIMARY KEY");
                }


                cmd = (Domain != null)
                    ? $@"{Environment.NewLine}    /* raw:{Domain.RawType} intern:[{Domain.FieldType}] */"
                    : $@"{Environment.NewLine}    /* {GetTypeString(cbTypes.Text, txtLength.Text, txtPrecisionLength.Text, txtScale.Text)} */";
                sb.Append(cmd);
            }
            else
            {
                //Keine Domain
                //sb.Append(GetTypeString(cbTypes.Text, txtLength.Text, txtPrecisionLength.Text, txtScale.Text));
                sb.Append(GetTypeString(cbTypes.Text, txtLength.Text, txtPrecisionLength.Text, txtScale.Text));
                if (cbTypes.Text == "VARCHAR")
                {
                    //Lege Column mit Datentyp an
                    if (cbCharSet.Text.Length > 0)
                    {
                        sb.Append($@" CHARACTER SET {cbCharSet.Text}");
                    }
                    if (cbCollate.Text.Length > 0)
                    {
                        sb.Append($@" COLLATE {cbCollate.Text}");
                    }
                }

                if (txtDefault.Text.Length > 0)
                {
                    sb.Append($@" DEFAULT {txtDefault.Text.Trim()}");
                }

                if (cbPrimaryKey.Checked)
                {
                    sb.Append(" PRIMARY KEY");
                }

                if (cbNotNull.Checked)
                {
                    sb.Append(" NOT NULL");
                }
            }

            sb.Append($@"{Environment.NewLine});");
            SQLScript.Add(sb.ToString());

            sb.Clear();

            //COMMENT ON COLUMN TADRESSEN.TTT IS '  rrrrrrrrrrrrrrrr'
            if (fctDescription.Text.Length > 0)
            {
                sb.Clear();
                sb.Append($@"COMMENT ON COLUMN {_tableObject.Name}.{txtFieldName.Text.Trim()} IS '{fctDescription.Text}';");
                SQLScript.Add(sb.ToString());
                SQLScript.Add(SQLPatterns.Commit);
            }

            SQLToUI();
        }