001package gudusoft.gsqlparser.stmt.db2; 002 003import gudusoft.gsqlparser.*; 004import gudusoft.gsqlparser.nodes.TParseTreeVisitor; 005import gudusoft.gsqlparser.stmt.TSelectSqlStatement; 006import gudusoft.gsqlparser.nodes.TDeclareSqlNode; 007import gudusoft.gsqlparser.nodes.TObjectName; 008 009public class TDb2DeclareCursorStatement extends TCustomDb2Stmt { 010 public TDb2DeclareCursorStatement (EDbVendor dbvendor){ 011 super(dbvendor); 012 sqlstatementtype = ESqlStatementType.sstdb2declarecursorstatement ; 013 } 014 015 void buildsql() { 016 } 017 018 void clear() { 019 } 020 021 String getasprettytext() { 022 return ""; 023 } 024 025 void iterate(TVisitorAbs pvisitor) { 026 } 027 028 public int doParseStatement(TCustomSqlStatement psql) { 029 if (rootNode == null) return -1; 030 TDeclareSqlNode declareSqlNode = (TDeclareSqlNode)rootNode; 031 super.doParseStatement(psql); 032 033 this.cursorName = declareSqlNode.getCursorName(); 034 035 subquery = new TSelectSqlStatement(this.dbvendor); 036 subquery.rootNode = declareSqlNode.getSelectSqlNode(); 037 subquery.doParseStatement(this); 038 039 return 0; 040 } 041 042 private TObjectName cursorName = null; 043 private TSelectSqlStatement subquery = null; 044 045 public void accept(TParseTreeVisitor v){ 046 v.preVisit(this); 047 v.postVisit(this); 048 } 049 050 public void acceptChildren(TParseTreeVisitor v){ 051 v.preVisit(this); 052 subquery.accept(v); 053 v.postVisit(this); 054 } 055 056 public void setCursorName(TObjectName cursorName) { 057 this.cursorName = cursorName; 058 } 059 060 public void setSubquery(TSelectSqlStatement subquery) { 061 this.subquery = subquery; 062 } 063}