Esempio n. 1
0
        public bool MakeSQLAlter()
        {
            SQLScript.Clear();
            var sb = new StringBuilder();

            string active         = OrgTriggerObject.Active ? "ACTIVE" : "DEACTIVE";
            string triggerTypeStr = StaticVariablesClass.GetTriggerTypeStr(OrgTriggerObject.Type);

            SQLScript.Add($@"DROP TRIGGER {OrgTriggerObject.Name};");
            SQLScript.Add($@"{SQLPatterns.Commit}{Environment.NewLine}");
            sb.Append($@"SET TERM ^ ;{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($@"{SQLPatterns.ScriptTerminator}{Environment.NewLine}");
            sb.Append($@"{SQLPatterns.SetTermEnd}{Environment.NewLine}");
            SQLScript.Add(sb.ToString());
            SQLScript.Add($@"{SQLPatterns.Commit}");

            SQLToUI();
            return(true);
        }
Esempio n. 2
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();
        }
Esempio n. 3
0
        public void SearchType()
        {
            string rt  = StaticVariablesClass.ConvertRawTypeToRawName(DomainObject.FieldType);
            int    inx = cbTypes.FindStringExact(rt);

            cbTypes.SelectedIndex = inx;
            gbLength.Enabled      = StaticVariablesClass.HasRawLength(cbTypes.Text.Trim());
        }
Esempio n. 4
0
 void DomainDataToEdit(DomainClass Domain)
 {
     txtLength.Text          = Domain.Length.ToString();
     txtScale.Text           = Domain.Scale.ToString();
     txtPrecisionLength.Text = Domain.Precision.ToString();
     cbDOMAIN.Text           = Domain.Name;
     cbTypes.Text            = StaticVariablesClass.ConvertRawTypeToRawName(Domain.FieldType);
     cbCharSet.Text          = (Domain.CharSet == null) ? "NONE" : Domain.CharSet;
     cbCollate.Text          = (Domain.Collate == null) ? "NONE" : Domain.Collate;
 }
Esempio n. 5
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();
        }
Esempio n. 6
0
        public void RefreshDomain()
        {
            string cmd0 = "SELECT RDB$FIELDS.RDB$FIELD_NAME,RDB$FIELDS.RDB$CHARACTER_LENGTH,RDB$FIELDS.RDB$FIELD_SCALE,RDB$FIELD_PRECISION,RDB$FIELDS.RDB$FIELD_TYPE,RDB$FIELDS.RDB$DESCRIPTION,RDB$TYPES.RDB$TYPE_NAME FROM RDB$FIELDS";
            string cmd1 = "LEFT JOIN RDB$TYPES ON RDB$TYPES.RDB$TYPE = RDB$FIELDS.RDB$FIELD_TYPE";

            string where = "WHERE RDB$FIELDS.RDB$FIELD_NAME = '" + FieldObject.Domain + "' AND RDB$TYPES.RDB$FIELD_NAME = 'RDB$FIELD_TYPE'";
            string cmd = cmd0 + " " + cmd1 + " " + where + ";";

            ConnectionClass cc = ConnectionPoolClass.Instance().GetConnection("C1");

            cc.ShowExceptionMode = MessageLibrary.ShowError.no;
            DbDataReader dr = cc.ExecuteQuery(cmd, false);

            if (dr != null)
            {
                if (cc.HasRows())
                {
                    int n = 0;
                    while (cc.Read())
                    {
                        DomainObject            = DataClassFactory.GetDataClass(StaticVariablesClass.DomainsKeyStr) as DomainClass;
                        DomainObject.Name       = cc.GetValue(0).ToString().Trim();
                        DomainObject.Length     = StaticFunctionsClass.ToIntDef(cc.GetValue(1).ToString().Trim(), 0);
                        DomainObject.Scale      = StaticFunctionsClass.ToIntDef(cc.GetValue(2).ToString().Trim(), 0);
                        DomainObject.Precision  = StaticFunctionsClass.ToIntDef(cc.GetValue(3).ToString().Trim(), 0);
                        DomainObject.TypeNumber = StaticFunctionsClass.ToIntDef(cc.GetValue(4).ToString().Trim(), 0);
                        DomainObject.FieldType  = cc.GetValue(6).ToString().Trim();
                        DomainObject.RawType    = StaticVariablesClass.ConvertINTERNALType_TO_SQLType(DomainObject.FieldType, DomainObject.Length);

                        object ob = cc.GetValue(5);
                        DomainObject.Description = cc.GetValue(5).ToString().Trim();

                        /*
                         * if (!string.IsNullOrEmpty(ob.ToString()))
                         * {
                         *  byte[] bytetext = (byte[])cc.DBProvider.DataReader[3];
                         *  DomainObject.Description = System.Text.Encoding.UTF8.GetString(bytetext);
                         * }
                         */
                        n++;
                    }
                }
                cc.CloseConnection();
            }
        }
Esempio n. 7
0
 public void ObjectToEdit(TableFieldClass FieldObject)
 {
     txtFieldName.Text       = FieldObject.Name;
     fctDescription.Text     = FieldObject.Description;
     cbPrimaryKey.Checked    = FieldObject.IsPrimary;
     txtDefault.Text         = FieldObject.Domain.DefaultValue;
     cbNotNull.Checked       = FieldObject.Domain.NotNull;
     txtLength.Text          = FieldObject.Domain.Length.ToString();
     txtScale.Text           = FieldObject.Domain.Scale.ToString();
     txtPrecisionLength.Text = FieldObject.Domain.Precision.ToString();
     txtPK.Text          = string.IsNullOrEmpty(FieldObject.PK_ConstraintName) ? TableObject.primary_constraint?.Name : FieldObject.PK_ConstraintName;
     cbDOMAIN.Text       = FieldObject.Domain.Name;
     cbFieldTypes.Text   = StaticVariablesClass.ConvertRawTypeToRawName(FieldObject.Domain.FieldType);
     fctDescription.Text = FieldObject.Description;
     cbCharSet.Text      = (FieldObject.Domain.CharSet == null) ? "NONE" : FieldObject.Domain.CharSet;
     cbCollate.Text      = (FieldObject.Domain.Collate == null) ? "NONE" : FieldObject.Domain.Collate;
     txtPosition.Text    = FieldObject.Position.ToString();
 }
Esempio n. 8
0
 public void EditToObject()
 {
     FieldObject          = new TableFieldClass();
     FieldObject.Name     = txtFieldName.Text.Trim();
     FieldObject.Position = StaticFunctionsClass.ToIntDef(txtPosition.Text, OrgFieldObject.Position);
     //FieldObject.CharSet     = cbCharSet.Text;
     //FieldObject.Collate     = cbCollate.Text;
     FieldObject.Domain.Precision    = StaticFunctionsClass.ToIntDef(txtPrecisionLength.Text, OrgFieldObject.Domain.Precision);
     FieldObject.Domain.Scale        = StaticFunctionsClass.ToIntDef(txtScale.Text, OrgFieldObject.Domain.Scale);
     FieldObject.Description         = fctDescription.Text;
     FieldObject.IsPrimary           = cbPrimaryKey.Checked;
     FieldObject.PK_ConstraintName   = txtPK.Text;
     FieldObject.Domain.FieldType    = StaticVariablesClass.ConvertRawNameToRawType(cbFieldTypes.Text);
     FieldObject.Domain.CharSet      = cbCharSet.Text.Trim();
     FieldObject.Domain.NotNull      = cbNotNull.Checked;
     FieldObject.Domain.Length       = StaticFunctionsClass.ToIntDef(txtLength.Text, OrgFieldObject.Domain.Length);
     FieldObject.Domain.DefaultValue = txtDefault.Text;
     FieldObject.Domain.Collate      = cbCollate.Text;
 }
Esempio n. 9
0
        public static string CreateTabelDLL(TableClass tableObject, eCreateMode cmode)
        {
            //
            //    CREATE TABLE TACT_TANT(
            //    ID TABLE_ID NOT NULL /* TABLE_ID = VARCHAR(64) NOT NULL */,
            //    BEZ VAR10 /* VAR10 = VARCHAR(10) */,
            //    TANTWORT_ID REF_ID /* REF_ID = VARCHAR(64) */,
            //    TACTION_ID REF_ID /* REF_ID = VARCHAR(64) */,
            //    GUELTIG      "SMALLINT" DEFAULT 1 NOT NULL /* "SMALLINT" = SMALLINT */,
            //    STATUS       "SMALLINT" DEFAULT 0 NOT NULL /* "SMALLINT" = SMALLINT */,
            //    TUSERID REF_ID /* REF_ID = VARCHAR(64) */,
            //    STAMP        "TIMESTAMP" DEFAULT CURRENT_TIMESTAMP /* "TIMESTAMP" = TIMESTAMP */
            //    );

            var sb = new StringBuilder();

            if (cmode == eCreateMode.recreate)
            {
                sb.AppendLine($@"RECREATE TABLE {tableObject.Name}");
            }
            else
            {
                sb.AppendLine($@"CREATE TABLE {tableObject.Name}");
            }

            sb.AppendLine("(");
            int fc = 0;

            foreach (TableFieldClass tfc in tableObject.Fields.Values)
            {
                fc++;
                bool systemdomain = false;
                if (tfc.Domain.Name.IndexOf("$") >= 0)
                {
                    systemdomain = true;
                }

                if (systemdomain)
                {
                    string FType = (tfc.Domain.Length > 0) ? $@"{StaticVariablesClass.ConvertRawTypeToRawName(tfc.Domain.FieldType)}({tfc.Domain.Length})" : $@"{StaticVariablesClass.ConvertRawTypeToRawName(tfc.Domain.FieldType)}";
                    sb.Append($@"    {tfc.Name} {FType} ");
                }
                else
                {
                    sb.Append($@"    {tfc.Name} {tfc.Domain.Name}  ");
                }

                if ((systemdomain) || ((tfc.Domain.FieldType != "VARYING") && ((!tableObject.IsPrimary(tfc.Name)) /*tfc.IS_PRIMARY*/)))
                {
                    if (tfc.Domain.FieldType == "VARYING")
                    {
                        if ((tfc.Domain.CharSet != "NONE") && (tfc.Domain.Collate.Length > 0))
                        {
                            sb.Append($@" CHARACTER SET {tfc.Domain.CharSet}");
                        }
                        //Not NULL
                        if (tfc.Domain.NotNull)
                        {
                            sb.Append(" NOT NULL");
                        }
                        if ((tfc.Domain.Collate != "NONE") && (tfc.Domain.Collate.Length > 0))
                        {
                            sb.Append($@" COLLATE {tfc.Domain.CharSet}");
                        }
                    }

                    if (tableObject.IsPrimary(tfc.Name))
                    {
                        sb.Append(" PRIMARY KEY");
                    }
                }

                if (fc < tableObject.Fields.Count)
                {
                    sb.Append(",");
                }

                //

                if (systemdomain)
                {
                    sb.Append($@" /* intern:[{tfc.Domain.FieldType}]   domain:{tfc.Domain.Name} */");
                }
                else
                {
                    sb.Append($@" /* raw:{tfc.Domain.RawType} intern:[{tfc.Domain.FieldType}] */");
                }

                if ((!systemdomain) && ((tfc.Domain.FieldType == "VARYING") || ((tableObject.IsPrimary(tfc.Name)))))
                {
                    sb.Append(" /*");
                    if (tfc.Domain.FieldType == "VARYING")
                    {
                        if ((tfc.Domain.CharSet != "NONE") && (tfc.Domain.Collate.Length > 0))
                        {
                            sb.Append($@" CHARACTER SET {tfc.Domain.CharSet}");
                        }
                        if (tfc.Domain.NotNull)
                        {
                            sb.Append(" NOT NULL");
                        }
                        if ((tfc.Domain.Collate != "NONE") && (tfc.Domain.Collate.Length > 0))
                        {
                            sb.Append($@" COLLATE {tfc.Domain.CharSet}");
                        }
                    }
                    sb.Append(" */");
                }
                sb.Append(Environment.NewLine);
            }
            sb.AppendLine("");
            sb.AppendLine(");");
            return(sb.ToString());
        }
Esempio n. 10
0
 public void SetControlsEnabled()
 {
     gbLength.Enabled  = StaticVariablesClass.HasRawLength(cbTypes.Text.Trim());
     cbCharSet.Enabled = cbTypes.Text.IndexOf("CHAR") >= 0;
     cbCollate.Enabled = cbTypes.Text.IndexOf("CHAR") >= 0;
 }