//private string alias_table_name = null; internal StringBuilder SQLCreateView_InDataBase(List<SQLTable> lTable) { StringBuilder SQL_View = new StringBuilder(""); try { if (this.m_Fkey.Count > 0) { jListClear(); if (this.m_Table_View == null) { m_Table_View = new Table_View(); } m_Table_View.View_Name = TableName + const_DataBaseViewSuffix; SQL_View.Append("\n\nCREATE VIEW " + ViewName + " AS "); SQL_View.Append("\nSELECT "); SQL_View.Append("\n " + TableName + ".ID"); SQLTable xtbl = new SQLTable(this); xtbl.CreateTableTree(lTable); string alias_table_name = this.TableName; foreach (Column col in xtbl.Column) { if (!col.IsIdentity) { if (col.fKey != null) { if (col.fKey.fTable != null) { col.fKey.fTable.BasicColumns(ref SQL_View, ref m_Table_View, alias_table_name); if (!m_Table_View.defined) { string Column_Name_In_View = col.ownerTable.TableName + VIEW_TableName2ColumnName_SEPARATOR + col.Name; Table_View.ColumnNames x_Table_View_ColumnNames = new Table_View.ColumnNames(); x_Table_View_ColumnNames.Name = Column_Name_In_View; x_Table_View_ColumnNames.Name_in_language = col.Name_in_language; this.m_Table_View.View_ColumnNames_List.Add(x_Table_View_ColumnNames); } } } else { string Column_Name_In_View = col.ownerTable.TableName + VIEW_TableName2ColumnName_SEPARATOR + col.Name; SQL_View.Append(",\n " + col.ownerTable.TableName + "." + col.Name + " AS " + Column_Name_In_View); if (!m_Table_View.defined) { Table_View.ColumnNames x_Table_View_ColumnNames = new Table_View.ColumnNames(); x_Table_View_ColumnNames.Name = Column_Name_In_View; x_Table_View_ColumnNames.Name_in_language = col.Name_in_language; this.m_Table_View.View_ColumnNames_List.Add(x_Table_View_ColumnNames); } } } } m_Table_View.defined = true; SQL_View.Append("\nFROM " + TableName); foreach (Column col in xtbl.Column) { if (!col.IsIdentity) { if (col.fKey != null) { if (col.fKey.fTable != null) { col.fKey.fTable.GetJoins(col.nulltype, this, alias_table_name, alias_table_name); } } } } CreateJoins(ref SQL_View, false); } } catch (Exception Ex) { LogFile.Error.Show("ERROR:SQLTable:SQLCreateView_InDataBase:Exception=" + Ex.Message); } return SQL_View; }
private void BasicColumns(ref StringBuilder SQL_View, ref Table_View parent_Table_View,string AliasTableName) { if (this.m_Table_View == null) { this.m_Table_View = new Table_View(); } string alias_table_name = AliasTableName + SQLTable.VIEW_TableName_SEPARATOR + this.TableName_Abbreviation; foreach (Column col in Column) { if (col.IsIdentity) { string Column_Name_In_View = alias_table_name + SQLTable.VIEW_TableName2ColumnName_SEPARATOR + col.Name; SQL_View.Append(",\n" + alias_table_name + "." + col.Name + " AS " + Column_Name_In_View); if (!this.m_Table_View.defined) { Table_View.ColumnNames x_Table_View_ColumnNames = new Table_View.ColumnNames(); x_Table_View_ColumnNames.Name = Column_Name_In_View; x_Table_View_ColumnNames.Name_in_language = col.Name_in_language; this.m_Table_View.View_ColumnNames_List.Add(x_Table_View_ColumnNames); } } else { if (col.fKey != null) { if (col.fKey.fTable != null) { col.fKey.fTable.BasicColumns(ref SQL_View, ref m_Table_View, alias_table_name); if (!m_Table_View.defined) { string Column_Name_In_View = alias_table_name + SQLTable.VIEW_TableName2ColumnName_SEPARATOR + col.Name; Table_View.ColumnNames x_Table_View_ColumnNames = new Table_View.ColumnNames(); x_Table_View_ColumnNames.Name = Column_Name_In_View; x_Table_View_ColumnNames.Name_in_language = col.Name_in_language; this.m_Table_View.View_ColumnNames_List.Add(x_Table_View_ColumnNames); } } } else { string Column_Name_In_View = alias_table_name + SQLTable.VIEW_TableName2ColumnName_SEPARATOR + col.Name; SQL_View.Append(",\n" + alias_table_name + "." + col.Name + " AS " + Column_Name_In_View); if (!this.m_Table_View.defined) { Table_View.ColumnNames x_Table_View_ColumnNames = new Table_View.ColumnNames(); x_Table_View_ColumnNames.Name = Column_Name_In_View; x_Table_View_ColumnNames.Name_in_language = col.Name_in_language; this.m_Table_View.View_ColumnNames_List.Add(x_Table_View_ColumnNames); } } } } this.m_Table_View.defined = true; parent_Table_View.View_List.Add(this.m_Table_View); }