001package gudusoft.gsqlparser.stmt.mssql;
002
003import gudusoft.gsqlparser.*;
004import gudusoft.gsqlparser.stmt.TCreateProcedureStmt;
005
006/**
007 * SQL Server/ Sybase create procedure statement.
008 *
009 *
010 */
011
012public class TMssqlCreateProcedure extends TCreateProcedureStmt{
013     public TMssqlCreateProcedure (EDbVendor dbvendor){
014        super(dbvendor);
015        sqlstatementtype = ESqlStatementType.sstmssqlcreateprocedure ;
016        }
017}
018
019//public class TMssqlCreateProcedure extends TStoredProcedureSqlStatement{
020//
021//    private TPTNodeList <TProcedureOption> procedureOptions;
022//    private boolean isForReplication;
023//
024//    public void setProcedureOptions(TPTNodeList<TProcedureOption> procedureOptions) {
025//        this.procedureOptions = procedureOptions;
026//    }
027//
028//    public TPTNodeList<TProcedureOption> getProcedureOptions() {
029//
030//        return procedureOptions;
031//    }
032//
033//    public void setForReplication(boolean isForReplication) {
034//        this.isForReplication = isForReplication;
035//    }
036//
037//    public boolean isForReplication() {
038//        return isForReplication;
039//    }
040//
041//     public TMssqlCreateProcedure (EDbVendor dbvendor){
042//        super(dbvendor);
043//        sqlstatementtype = ESqlStatementType.sstmssqlcreateprocedure ;
044//        }
045//
046//
047//    public TObjectName getStoredProcedureName(){
048//        return procedureName;
049//    }
050//    /**
051//     * The name that you give to the procedure that you are declaring or defining.
052//     * @return
053//     */
054//    public TObjectName getProcedureName() {
055//        return procedureName;
056//    }
057//
058//    private TObjectName procedureName = null;
059//
060//
061//    public int doParseStatement(TCustomSqlStatement psql) {
062//        if (rootNode == null) return -1;
063//        if(!(rootNode instanceof TCreateProcedureSqlNode)) return -1;
064//        TCreateProcedureSqlNode createProcedureNode = (TCreateProcedureSqlNode)rootNode;
065//
066//        super.doParseStatement(psql);
067//        TStackFrame stackFrame = new TStackFrame(this.stmtScope);
068//        stackFrame.pushStack(getFrameStack());
069//
070//        procedureName = createProcedureNode.getProcedureName();
071//        if (getSqlEnv() != null)  {
072//            getSqlEnv().addProcedure(procedureName.toString(),true);
073//            if (getSqlEnv().getDefaultCatalogName() != null){
074//                if (procedureName.getDatabaseToken() == null){
075//                    procedureName.setDatabaseToken(new TSourceToken(getSqlEnv().getDefaultCatalogName()));
076//                }
077//            }
078//        }
079//        this.setParameterDeclarations(createProcedureNode.getParameters());
080//        procedureOptions = createProcedureNode.getProcedureOptions();
081//        isForReplication  = createProcedureNode.isForReplication();
082//
083//        // push parameterDeclarations into symbolTable
084//        if (this.getParameterDeclarations() != null){
085//            for(int i=0;i< this.getParameterDeclarations().size();i++){
086//               this.getTopStatement().getSymbolTable().push( new TSymbolTableItem(TObjectName.ttobjParameter,this, this.getParameterDeclarations().getParameterDeclarationItem(i)));
087//                if (this.getParameterDeclarations().getParameterDeclarationItem(i).getParameterName() != null){
088//                    this.stmtScope.addSymbol(new TVariable(this.getParameterDeclarations().getParameterDeclarationItem(i).getParameterName(),this.getParameterDeclarations().getParameterDeclarationItem(i)));
089//                }
090//            }
091//        }
092//
093//        if (createProcedureNode.getStmts() != null){
094//           createProcedureNode.getStmts().doParse(this,ESqlClause.unknown);
095//            for(int i=0;i<createProcedureNode.getStmts().size();i++){
096//               this.getBodyStatements().add(createProcedureNode.getStmts().getStatementSqlNode(i).getStmt());
097//            }
098//        }
099//
100//        // pop parameterDeclarations from symbolTable
101//        if (this.getParameterDeclarations() != null){
102//            for(int i=0;i< this.getParameterDeclarations().size();i++){
103//               this.getTopStatement().getSymbolTable().pop();
104//            }
105//        }
106//
107//        stackFrame.popStack(getFrameStack());
108//
109//        return 0;
110//    }
111//
112//    public void accept(TParseTreeVisitor v){
113//        v.preVisit(this);
114//
115//        v.postVisit(this);
116//    }
117//
118//    public void acceptChildren(TParseTreeVisitor v){
119//        v.preVisit(this);
120//        if (this.getParameterDeclarations() != null) getParameterDeclarations().acceptChildren(v);
121//        if (getBodyStatements().size() > 0) getBodyStatements().acceptChildren(v);
122//
123//        v.postVisit(this);
124//    }
125//
126//    public void setProcedureName(TObjectName procedureName) {
127//        this.procedureName = procedureName;
128//    }
129//}