class crudReport { private String sqlScript; public crudReport(String sqlScript) { this.sqlScript = sqlScript; } public void report() { TGSqlParser sqlparser = new TGSqlParser(TDbVendor.DbVMssql); sqlparser.SqlText.Text = sqlScript; Console.WriteLine("Processing.."); int ret = sqlparser.Parse(); if (ret == 0) { for (int i = 0; i < sqlparser.SqlStatements.Count(); i++) { analyzeStatement(sqlparser.SqlStatements[i],0); } } else { Console.WriteLine(sqlparser.ErrorMessages); } } private void analyzeStatement(TCustomSqlStatement sql, int level) { String ident = new string((char)9, level); switch (sql.SqlStatementType) { case TSqlStatementType.sstCreateTable: Console.WriteLine(ident + "Create:{0}", sql.Table.TableName); break; case TSqlStatementType.sstSelect: Console.WriteLine(ident + "Select:"); for (int j = 0; j < sql.Tables.Count(); j++) { if (sql.Tables[j].TableType == TLzTableType .lttAttr) Console.WriteLine(ident+" "+sql.Tables[j].TableName); } break; case TSqlStatementType.sstUpdate: Console.WriteLine(ident + "Update:"); for (int j = 0; j < sql.Tables.Count(); j++) { if (sql.Tables[j].TableType == TLzTableType.lttAttr) Console.WriteLine(ident + " " + sql.Tables[j].TableName); } break; case TSqlStatementType.sstDelete: Console.WriteLine(ident + "Delete:"); for (int j = 0; j < sql.Tables.Count(); j++) { if (sql.Tables[j].TableType == TLzTableType.lttAttr) Console.WriteLine(ident + " " + sql.Tables[j].TableName); } break; case TSqlStatementType.sstInsert: Console.WriteLine(ident + "Insert:"); for (int j = 0; j < sql.Tables.Count(); j++) { if (sql.Tables[j].TableType == TLzTableType.lttAttr) Console.WriteLine(ident + " " + sql.Tables[j].TableName); } break; default: Console.WriteLine(ident + sql.SqlStatementType); break; } for (int i = 0; i < sql.ChildNodes.Count(); i++) { if (sql.ChildNodes[i] is TCustomSqlStatement) { analyzeStatement((TCustomSqlStatement)sql.ChildNodes[i],level+1); } } } }