Пример #1
0
        protected virtual void OnBtnCreateFieldClicked(object sender, System.EventArgs e)
        {
            SqlLiteAddFiled sqlAddField = new SqlLiteAddFiled(this);
            int             result      = sqlAddField.Run();

            if (result == (int)ResponseType.Ok)
            {
                FieldTable ft = sqlAddField.FieldTable;
                if (ft != null)
                {
                    FieldTable cdFind = fields.Find(x => x.Name.ToUpper() == ft.Name.ToUpper());
                    if (cdFind != null)
                    {
                        MessageDialogs md = new MessageDialogs(MessageDialogs.DialogButtonType.Ok, MainClass.Languages.Translate("fileds_exist", ft.Name), "", Gtk.MessageType.Error, this);
                        md.ShowDialog();
                        sqlAddField.Destroy();
                        return;
                    }

                    fieldsStore.AppendValues(ft.Name, ft.Type, ft);
                    fields.Add(ft);
                }
            }
            sqlAddField.Destroy();
        }
Пример #2
0
        protected virtual void OnBtnCreateFieldClicked(object sender, System.EventArgs e)
        {
            SqlLiteAddFiled sqlAddField = new SqlLiteAddFiled(this);
            int             result      = sqlAddField.Run();

            if (result == (int)ResponseType.Ok)
            {
                FieldTable ft = sqlAddField.FieldTable;
                if (ft != null)
                {
                    FieldTable cdFind = fields.Find(x => x.Name.ToUpper() == ft.Name.ToUpper());
                    if (cdFind != null)
                    {
                        MessageDialogs md = new MessageDialogs(MessageDialogs.DialogButtonType.Ok, MainClass.Languages.Translate("fileds_exist", ft.Name), "", Gtk.MessageType.Error, this);
                        md.ShowDialog();
                        sqlAddField.Destroy();
                        return;
                    }
                    string sql = String.Format("ALTER TABLE {0} ADD {1} {2} ", tableName, ft.Name, ft.Type);

                    if (ft.NotNULL)
                    {
                        sql = sql + " " + "NOT NULL";
                    }

                    if (!String.IsNullOrEmpty(ft.DefaultValue))
                    {
                        if ((ft.Type.IndexOf("NUMERIC") > -1) || (ft.Type.IndexOf("INTEGER") > -1))
                        {
                            sql = sql + " DEFAULT " + ft.DefaultValue;
                        }
                        else
                        {
                            string dfltValue = ft.DefaultValue;
                            if (!dfltValue.StartsWith("'"))
                            {
                                dfltValue = "'" + dfltValue;
                            }
                            if (!dfltValue.EndsWith("'"))
                            {
                                dfltValue = dfltValue + "'";
                            }

                            sql = sql + " DEFAULT " + dfltValue;
                        }
                    }

                    sql = sql + " ;";

                    if (sqlLiteDal.RunSqlScalar(sql))
                    {
                        fieldsStore.AppendValues(ft.Name, ft.Type, ft);
                        fields.Add(ft);
                    }
                }
            }
            sqlAddField.Destroy();
        }
Пример #3
0
        protected virtual void OnBtnCreateFieldClicked(object sender, System.EventArgs e)
        {
            SqlLiteAddFiled sqlAddField = new SqlLiteAddFiled(this);
            int result = sqlAddField.Run();
            if (result == (int)ResponseType.Ok){
                FieldTable ft = sqlAddField.FieldTable;
                if (ft!= null ){

                    FieldTable cdFind = fields.Find(x=>x.Name.ToUpper() ==ft.Name.ToUpper());
                    if (cdFind != null){

                        MessageDialogs md = new MessageDialogs(MessageDialogs.DialogButtonType.Ok, MainClass.Languages.Translate("fileds_exist", ft.Name), "", Gtk.MessageType.Error,this);
                        md.ShowDialog();
                        sqlAddField.Destroy();
                        return;
                    }

                    fieldsStore.AppendValues(ft.Name,ft.Type,ft);
                    fields.Add(ft);
                }
            }
            sqlAddField.Destroy();
        }
Пример #4
0
        protected virtual void OnBtnEditFieldClicked(object sender, System.EventArgs e)
        {
            TreeSelection ts = tvFields.Selection;

            TreeIter ti = new TreeIter();

            ts.GetSelected(out ti);

            TreePath[] tp = ts.GetSelectedRows();
            if (tp.Length < 1)
            {
                return;
            }

            FieldTable oldFT = (FieldTable)tvFields.Model.GetValue(ti, 4);

            if (oldFT == null)
            {
                return;
            }

            SqlLiteAddFiled sqlAddField = new SqlLiteAddFiled(oldFT, this);
            int             result      = sqlAddField.Run();

            if (result == (int)ResponseType.Ok)
            {
                FieldTable newFT = sqlAddField.FieldTable;
                if (newFT != null)
                {
                    string tempTable = "temp_" + tableName + "_backup";
                    string sqlBegin  = "BEGIN TRANSACTION ;";

                    string sqlRename = String.Format(" ALTER TABLE {0} RENAME TO {1} ;", tableName, tempTable);

                    string sqlReCreate = string.Format(" CREATE TABLE {0}( ", tableName);
                    string oldColums   = "";
                    string newColums   = "";

                    for (int r = 0; r < fields.Count; r++)
                    {
                        if (fields[r].Name != oldFT.Name)
                        {
                            string dfltValue = fields[r].DefaultValue;
                            string type      = fields[r].Type;

                            sqlReCreate = sqlReCreate + fields[r].Name + " " + type;

                            if (fields[r].NotNULL)
                            {
                                sqlReCreate = sqlReCreate + " NOT NULL";
                            }

                            if (!String.IsNullOrEmpty(dfltValue))
                            {
                                if ((type.IndexOf("NUMERIC") > -1) || (type.IndexOf("INTEGER") > -1))
                                {
                                    sqlReCreate = sqlReCreate + " DEFAULT " + dfltValue;
                                }
                                else
                                {
                                    if (!dfltValue.StartsWith("'"))
                                    {
                                        dfltValue = "'" + dfltValue;
                                    }
                                    if (!dfltValue.EndsWith("'"))
                                    {
                                        dfltValue = dfltValue + "'";
                                    }
                                    sqlReCreate = sqlReCreate + " DEFAULT " + dfltValue;
                                }
                            }

                            oldColums = oldColums + fields[r].Name;
                            newColums = newColums + fields[r].Name;
                        }
                        else
                        {
                            string dfltValue = newFT.DefaultValue;
                            string type      = newFT.Type;

                            sqlReCreate = sqlReCreate + newFT.Name + " " + type;

                            if (newFT.NotNULL)
                            {
                                sqlReCreate = sqlReCreate + " NOT NULL";
                            }

                            if (!String.IsNullOrEmpty(dfltValue))
                            {
                                if ((type.IndexOf("NUMERIC") > -1) || (type.IndexOf("INTEGER") > -1))
                                {
                                    sqlReCreate = sqlReCreate + " DEFAULT " + dfltValue;
                                }
                                else
                                {
                                    if (!dfltValue.StartsWith("'"))
                                    {
                                        dfltValue = "'" + dfltValue;
                                    }
                                    if (!dfltValue.EndsWith("'"))
                                    {
                                        dfltValue = dfltValue + "'";
                                    }

                                    sqlReCreate = sqlReCreate + " DEFAULT " + dfltValue;
                                }
                            }

                            oldColums = oldColums + fields[r].Name;
                            newColums = newColums + newFT.Name;
                        }

                        if (r < fields.Count - 1)
                        {
                            sqlReCreate = sqlReCreate + ",";
                            oldColums   = oldColums + ",";
                            newColums   = newColums + ",";
                        }
                    }
                    sqlReCreate = sqlReCreate + ") ;";

                    string sqlInsertInto = string.Format(" INSERT INTO {0}( {1} ) SELECT {2} FROM {3} ;", tableName, newColums, oldColums, tempTable);
                    string sqlDropTable  = string.Format(" DROP TABLE {0} ;", tempTable);
                    string sqlEnd        = "COMMIT ;";
                    string sql           = sqlBegin + "\n" + sqlRename + "\n" + sqlReCreate + "\n" + sqlInsertInto + "\n" + sqlDropTable + "\n" + sqlEnd;
                    //Console.WriteLine(sql);

                    if (sqlLiteDal.RunSqlScalar(sql))
                    {
                        //fields.Remove(oldFT);

                        //fieldsStore.SetValue(ti,

                        GetTableStructure();
                    }
                    else
                    {
                        // nepodarilo sa vymazanie, dam naspet
                        //fields.Add(oldFT);
                    }
                }
            }
            sqlAddField.Destroy();
        }