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}