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//}