internal BindEngine(string name, FieldArray fields, IDictionary extendedProperties) : base(extendedProperties) { this.fields = fields; _name = name; ParsePattern(); }
internal BindClass(FieldArray fields, string name, IDictionary extendedProperties) : base(extendedProperties) { this.fields = fields; declarations = new BindArray(); instances = new BindArray(); properties = new BindArray(); _name = name; Parse(fields); ParsePattern(); }
private FieldArray RecuperaCampos() { FieldArray ret = new FieldArray(); foreach(ListViewItem lvi in lvCampos.Items) { ret.Add((Field)lvi.Tag); } return ret; }
public static string CreateDeleteProcedure(string aplicacion, string tablename, FieldArray fields, string entidad) { /* CREATE PROCEDURE [dbo].[RPOSXXX_entidad_I] @alias1 AS dbotype, @alias2 AS dbotype AS BEGIN DELETE FROM tablename WHERE field1 = @alias1 END */ const string PARAM_FORMAT = "\n\t@{0} AS {1},"; const string WHERE_FORMAT = "{0} = @{1}\n\t\t\t AND "; string spName = GetSPName(aplicacion,entidad,SPType.Delete); string SP_FORMAT = "CREATE PROCEDURE [dbo].[" + spName + "] \n" + "\t{0}\n" + "AS\n" + "BEGIN\n" + "\tDELETE FROM " + tablename + " \n" + "\tWHERE {1} \n" + "END;"; string paramPart = ""; string wherePart = ""; foreach(Field fld in fields) { if(fld.Alias == null || fld.Alias == "") fld.Alias = fld.Name; } string[] pks = GetPrimaryKeys(tablename); foreach(string pk in pks) { Field field = null; foreach(Field fld in fields) { if(fld.Name == pk) { field = fld; break; } } if(field != null) { string nParam = string.Format(PARAM_FORMAT, field.Alias, field.DBDefinition); paramPart += nParam; string nWhere = string.Format(WHERE_FORMAT, field.Name, field.Alias); wherePart += nWhere; } } paramPart = CleanSPPart(paramPart); wherePart = CleanSPPart(wherePart); if(wherePart.Length > 0)wherePart = wherePart.Remove(wherePart.Length - 4, 4); return string.Format(SP_FORMAT, paramPart, wherePart); }
public static FieldArray GetTableFields_old(string tablename) { using(SqlConnection cnn = new SqlConnection(Configuracion.valor("DSNBD"))) { SqlCommand comm = new SqlCommand(); DataTable dtt; comm.CommandText = "SELECT TOP 0 * FROM " + tablename + " FOR XML AUTO, XMLDATA"; comm.Connection = cnn; comm.CommandType = CommandType.Text; cnn.Open(); XmlReader xr = comm.ExecuteXmlReader(); DataSet ds = new DataSet(); ds.ReadXml(xr); dtt = ds.Tables[0]; FieldArray ret = new FieldArray(); foreach(DataColumn dtc in dtt.Columns) { TypeEntry te = Pattern.GetBaseType(dtc.DataType.Name); if(te != null) { Field fld = new Field(); fld.Name = dtc.ColumnName; fld.Type = te; ret.Add(fld); } } cnn.Close(); return ret; } }
public static FieldArray GetTableFields(string tablename) { using(OleDbConnection cnn = new OleDbConnection("Provider=SQLOLEDB;" + Configuracion.valor("DSNBD"))) { string[] strcnn = Configuracion.valor("DSNBD").Split(';'); string catalog = null; foreach(string str in strcnn) { string[] subs = str.Split('='); if(subs[0].ToLower() == "initial catalog") { catalog = subs[1]; break; } } FieldArray ret = new FieldArray(); cnn.Open(); DataTable tbl = cnn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,new object[]{ catalog, "dbo", tablename }); foreach(DataRow row in tbl.Rows) { Field fld = new Field(); SetOledbType(fld, row.ItemArray); if(fld.Type != null) { fld.Name = (string)row.ItemArray[SCHEMA_COLUMN_NAME]; fld.Nullable = (bool)row.ItemArray[SCHEMA_IS_NULLABLE]; ret.Add(fld); } } cnn.Close(); return ret; } }
public static string CreateInsertProcedure(string aplicacion, string tablename, FieldArray fields, string entidad) { /* CREATE PROCEDURE [dbo].[RPOSXXX_entidad_I] @alias1 AS dbotype, @alias2 AS dbotype AS BEGIN INSERT INTO tablename (field1,field2,field3) VALUES (@alias1,@alias2,@alias3) END */ const string PARAM_FORMAT = "\n\t@{0} AS {1},"; const string FIELD_FORMAT = "\n\t\t\t{0},"; const string VALUE_FORMAT = "\n\t\t\t@{0},"; string spName = GetSPName(aplicacion,entidad,SPType.Insert); string SP_FORMAT = "CREATE PROCEDURE [dbo].[" + spName + "] \n" + "{0}\n" + "AS\n" + "BEGIN\n" + "\tINSERT INTO " + tablename + " \n" + "\t\t\t({1})\n" + "\t\t\tVALUES({2}) \n" + "END;"; string paramPart = ""; string fieldsPart = ""; string valuesPart = ""; foreach(Field fld in fields) { if(fld.Alias == null || fld.Alias == "") fld.Alias = fld.Name; paramPart += string.Format(PARAM_FORMAT, fld.Alias, fld.DBDefinition); fieldsPart += string.Format(FIELD_FORMAT, fld.Name); valuesPart += string.Format(VALUE_FORMAT, fld.Alias); } paramPart = CleanSPPart(paramPart); fieldsPart = CleanSPPart(fieldsPart); valuesPart = CleanSPPart(valuesPart); return string.Format(SP_FORMAT, paramPart, fieldsPart, valuesPart); }
protected static Field FindFieldByTableName(FieldArray fields, string name) { foreach(Field field in fields) { if(field.Name == name) return field; } return null; }
public static string BindEngine(string entidad, FieldArray fields, IDictionary extendedProperties) { BindEngine bindengine = new BindEngine(entidad, fields, extendedProperties); return bindengine.ToString(); }
public static string BindClass(string entidad, FieldArray fields, IDictionary extendedProperties) { BindClass bindclass = new BindClass(fields, entidad, extendedProperties); return bindclass.ToString(); }
internal BindClass(FieldArray fields, string name) : this(fields, name, null) { }
private void Parse(FieldArray fields) { foreach(Field field in fields) { BindDeclaration decl = new BindDeclaration(field, this.ExtendedInfo); declarations.Add(decl); BindInstance inst = new BindInstance(field, this.ExtendedInfo); instances.Add(inst); BindProperty prop = new BindProperty(field, this.ExtendedInfo); properties.Add(prop); } }
internal BindEngine(string name, FieldArray fields) : this(name, fields, null) { }