/// <summary> /// Finalize the SqlFileSpec table. /// </summary> /// <param name="tables">The collection of all tables.</param> /// <remarks> /// Since rows of the SqlFileSpec table are represented by either /// the SqlFileSpec or SqlLogFileSpec depending upon the context in /// which they are used in the SqlDatabase table, decompilation of this /// table must occur after the SqlDatbase parents are decompiled. /// </remarks> private void FinalizeSqlFileSpecTable(TableCollection tables) { Table sqlDatabaseTable = tables["SqlDatabase"]; Table sqlFileSpecTable = tables["SqlFileSpec"]; if (null != sqlDatabaseTable && null != sqlFileSpecTable) { Hashtable sqlFileSpecRows = new Hashtable(); // index each SqlFileSpec row by its primary key foreach (Row row in sqlFileSpecTable.Rows) { sqlFileSpecRows.Add(row[0], row); } // create the necessary SqlFileSpec and SqlLogFileSpec elements for each row foreach (Row row in sqlDatabaseTable.Rows) { Sql.SqlDatabase sqlDatabase = (Sql.SqlDatabase) this.Core.GetIndexedElement(row); if (null != row[6]) { Row sqlFileSpecRow = (Row)sqlFileSpecRows[row[6]]; if (null != sqlFileSpecRow) { Sql.SqlFileSpec sqlFileSpec = new Sql.SqlFileSpec(); sqlFileSpec.Id = (string)sqlFileSpecRow[0]; if (null != sqlFileSpecRow[1]) { sqlFileSpec.Name = (string)sqlFileSpecRow[1]; } sqlFileSpec.Filename = (string)sqlFileSpecRow[2]; if (null != sqlFileSpecRow[3]) { sqlFileSpec.Size = (string)sqlFileSpecRow[3]; } if (null != sqlFileSpecRow[4]) { sqlFileSpec.MaxSize = (string)sqlFileSpecRow[4]; } if (null != sqlFileSpecRow[5]) { sqlFileSpec.GrowthSize = (string)sqlFileSpecRow[5]; } sqlDatabase.AddChild(sqlFileSpec); } else { this.Core.OnMessage(WixWarnings.ExpectedForeignRow(row.SourceLineNumbers, sqlDatabaseTable.Name, row.GetPrimaryKey(DecompilerCore.PrimaryKeyDelimiter), "FileSpec_", (string)row[6], "SqlFileSpec")); } } if (null != row[7]) { Row sqlFileSpecRow = (Row)sqlFileSpecRows[row[7]]; if (null != sqlFileSpecRow) { Sql.SqlLogFileSpec sqlLogFileSpec = new Sql.SqlLogFileSpec(); sqlLogFileSpec.Id = (string)sqlFileSpecRow[0]; if (null != sqlFileSpecRow[1]) { sqlLogFileSpec.Name = (string)sqlFileSpecRow[1]; } sqlLogFileSpec.Filename = (string)sqlFileSpecRow[2]; if (null != sqlFileSpecRow[3]) { sqlLogFileSpec.Size = (string)sqlFileSpecRow[3]; } if (null != sqlFileSpecRow[4]) { sqlLogFileSpec.MaxSize = (string)sqlFileSpecRow[4]; } if (null != sqlFileSpecRow[5]) { sqlLogFileSpec.GrowthSize = (string)sqlFileSpecRow[5]; } sqlDatabase.AddChild(sqlLogFileSpec); } else { this.Core.OnMessage(WixWarnings.ExpectedForeignRow(row.SourceLineNumbers, sqlDatabaseTable.Name, row.GetPrimaryKey(DecompilerCore.PrimaryKeyDelimiter), "FileSpec_Log", (string)row[7], "SqlFileSpec")); } } } } }
/// <summary> /// Finalize the SqlFileSpec table. /// </summary> /// <param name="tables">The collection of all tables.</param> /// <remarks> /// Since rows of the SqlFileSpec table are represented by either /// the SqlFileSpec or SqlLogFileSpec depending upon the context in /// which they are used in the SqlDatabase table, decompilation of this /// table must occur after the SqlDatbase parents are decompiled. /// </remarks> private void FinalizeSqlFileSpecTable(TableCollection tables) { Table sqlDatabaseTable = tables["SqlDatabase"]; Table sqlFileSpecTable = tables["SqlFileSpec"]; if (null != sqlDatabaseTable && null != sqlFileSpecTable) { Hashtable sqlFileSpecRows = new Hashtable(); // index each SqlFileSpec row by its primary key foreach (Row row in sqlFileSpecTable.Rows) { sqlFileSpecRows.Add(row[0], row); } // create the necessary SqlFileSpec and SqlLogFileSpec elements for each row foreach (Row row in sqlDatabaseTable.Rows) { Sql.SqlDatabase sqlDatabase = (Sql.SqlDatabase)this.Core.GetIndexedElement(row); if (null != row[6]) { Row sqlFileSpecRow = (Row)sqlFileSpecRows[row[6]]; if (null != sqlFileSpecRow) { Sql.SqlFileSpec sqlFileSpec = new Sql.SqlFileSpec(); sqlFileSpec.Id = (string)sqlFileSpecRow[0]; if (null != sqlFileSpecRow[1]) { sqlFileSpec.Name = (string)sqlFileSpecRow[1]; } sqlFileSpec.Filename = (string)sqlFileSpecRow[2]; if (null != sqlFileSpecRow[3]) { sqlFileSpec.Size = (string)sqlFileSpecRow[3]; } if (null != sqlFileSpecRow[4]) { sqlFileSpec.MaxSize = (string)sqlFileSpecRow[4]; } if (null != sqlFileSpecRow[5]) { sqlFileSpec.GrowthSize = (string)sqlFileSpecRow[5]; } sqlDatabase.AddChild(sqlFileSpec); } else { this.Core.OnMessage(WixWarnings.ExpectedForeignRow(row.SourceLineNumbers, sqlDatabaseTable.Name, row.GetPrimaryKey(DecompilerCore.PrimaryKeyDelimiter), "FileSpec_", (string)row[6], "SqlFileSpec")); } } if (null != row[7]) { Row sqlFileSpecRow = (Row)sqlFileSpecRows[row[7]]; if (null != sqlFileSpecRow) { Sql.SqlLogFileSpec sqlLogFileSpec = new Sql.SqlLogFileSpec(); sqlLogFileSpec.Id = (string)sqlFileSpecRow[0]; if (null != sqlFileSpecRow[1]) { sqlLogFileSpec.Name = (string)sqlFileSpecRow[1]; } sqlLogFileSpec.Filename = (string)sqlFileSpecRow[2]; if (null != sqlFileSpecRow[3]) { sqlLogFileSpec.Size = (string)sqlFileSpecRow[3]; } if (null != sqlFileSpecRow[4]) { sqlLogFileSpec.MaxSize = (string)sqlFileSpecRow[4]; } if (null != sqlFileSpecRow[5]) { sqlLogFileSpec.GrowthSize = (string)sqlFileSpecRow[5]; } sqlDatabase.AddChild(sqlLogFileSpec); } else { this.Core.OnMessage(WixWarnings.ExpectedForeignRow(row.SourceLineNumbers, sqlDatabaseTable.Name, row.GetPrimaryKey(DecompilerCore.PrimaryKeyDelimiter), "FileSpec_Log", (string)row[7], "SqlFileSpec")); } } } } }