public void Populate(appDB.ddTableRow drTable) { DataTable dtTyped = null; try { atLogic.BEManager mngr = myA.GetFile(0).GetBEMngrForTable(drTable.DBTableName); dtTyped = mngr.MyDS.Tables[drTable.DBTableName]; } catch (Exception x) { //ignore } DataTable dtViews = myA.GetGeneralRec("select * from information_schema.columns where table_schema='dbo' and table_name='v" + drTable.DBTableName + "' "); DataTable dtTable = myA.GetGeneralRec("select * from information_schema.columns where table_schema='dbo' and table_name='" + drTable.DBTableName + "' "); if (dtTable.Rows.Count == 0) { drTable.isDBTable = false; } else { drTable.isDBTable = true; } if (dtTyped != null) { foreach (DataColumn dc in dtTyped.Columns) { appDB.ddFieldRow drField; if (myA.DB.ddField.Select("Tableid=" + drTable.TableId.ToString() + " and DBFieldName='" + dc.ColumnName + "'").Length == 0) { drField = (appDB.ddFieldRow)Add(drTable); drField.FieldName = dc.ColumnName; drField.DBFieldName = dc.ColumnName; if (drTable.isDynamic) { drField.AllowInRelatedFields = false; } } else { drField = (appDB.ddFieldRow)myA.DB.ddField.Select("Tableid=" + drTable.TableId.ToString() + " and DBFieldName='" + dc.ColumnName + "'")[0]; } drField.isMissing = true; drField.DataType = dc.DataType.Name; if (drField.IsLeftEngNull()) { drField.LeftEng = SplitCamelCase(drField.FieldName); drField.LeftFre = SplitCamelCase(drField.FieldName); } if (dtViews.Select("Column_name='" + dc.ColumnName + "'", "").Length == 0) { drField.isVirtualColumn = true; } else { drField.isMissing = false; drField.isVirtualColumn = false; } if (!drField.isVirtualColumn && dtTable.Select("Column_name='" + dc.ColumnName + "'", "").Length == 0) { drField.isFromView = true; } else { drField.isMissing = false; drField.isFromView = false; } } //check for "obsolete" columns foreach (appDB.ddFieldRow drf in drTable.GetddFieldRows()) { if (!dtTyped.Columns.Contains(drf.DBFieldName)) { drf.AllowInRelatedFields = false; drf.DescEng = "OBSOLETE"; } } } else { foreach (DataRow dr in dtViews.Rows) { if (myA.DB.ddField.Select("Tableid=" + drTable.TableId.ToString() + " and DBFieldName='" + dr["Column_name"].ToString() + "'").Length == 0) { appDB.ddFieldRow drField = (appDB.ddFieldRow)Add(drTable); drField.FieldName = dr["Column_name"].ToString(); if (dtTable.Select("Column_name='" + drField.FieldName + "'", "").Length == 0) { drField.isFromView = true; drField.isMissing = false; } } } } }
public DataTable Codes(string name, FileManager fm) { if (myddLookupDT.Count == 0) { Load(); } appDB.ddLookupRow[] dlrs = (appDB.ddLookupRow[])myddLookupDT.Select("LookupName='" + name + "'"); if (dlrs.Length == 1) { DataTable dtList; appDB.ddLookupRow dlr = dlrs[0]; string sListname = name + myA.AppMan.Language; if (dlr.Cache && myA.myColCodes.ContainsKey(sListname)) { return((DataTable)myA.myColCodes[sListname]); } WhereClause wc = new WhereClause(); if (dlr.UseFileContext && fm != null && !fm.IsVirtualFM) { wc.Add("Fileid", "=", fm.CurrentFileId); } if (!dlr.IncludeObsolete) { wc.Add("Obsolete", "=", 0); } if (!dlr.IsWhereClauseNull()) { wc.And(dlr.WhereClause); } switch (dlr.LookupType) { case "SP": if (dlr.UseFileContext && fm != null && !fm.IsVirtualFM) { dtList = myA.AppMan.ExecuteDataset(dlr.Source, fm.CurrentFileId).Tables[0]; } else { dtList = myA.AppMan.ExecuteDataset(dlr.Source, System.DBNull.Value).Tables[0]; } break; case "SQL": dtList = myA.GetGeneralRec(dlr.Source); break; case "VIEW": case "TABLE": dtList = myA.GetGeneralRec(dlr.Source, wc); break; case "GEN": default: wc.Add("LookupId", "=", dlr.LookupId); DataView dv = new DataView(myA.DB.ddGeneric, wc.Filter(), "", DataViewRowState.CurrentRows); dtList = dv.ToTable(); dtList.Columns.Remove("LookupId"); dtList.Columns.Remove("ParentId"); dtList.PrimaryKey = new DataColumn[] { dtList.Columns["GenericId"] }; //dtList = myA.GetGeneralRec("vddGenericList",wc); break; } string sort = ""; if (!dlr.IsSortcolumnsNull()) { sort = dlr.Sortcolumns; } else { sort = dtList.Columns[0].ColumnName; } DataView dv1 = new DataView(dtList, "", sort, DataViewRowState.CurrentRows); dtList = dv1.ToTable(); if (dtList.PrimaryKey.Length == 0) { if (!dlr.IsPKNameNull()) { dtList.PrimaryKey = new DataColumn[] { dtList.Columns[dlr.PKName] }; } else { dtList.PrimaryKey = new DataColumn[] { dtList.Columns[0] }; } } if (dlr.Cache) { myA.myColCodes.Add(sListname, dtList); } return(dtList); } else { throw new AtriumException(name + " is not a valid lookup table"); } }