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(); }
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(); }
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(); }
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(); }