001package gudusoft.gsqlparser.stmt.mssql; 002/* 003 * Date: 14-9-17 004 */ 005 006import gudusoft.gsqlparser.EDbVendor; 007import gudusoft.gsqlparser.ESqlStatementType; 008import gudusoft.gsqlparser.TCustomSqlStatement; 009import gudusoft.gsqlparser.nodes.TDummy; 010import gudusoft.gsqlparser.nodes.TExpression; 011import gudusoft.gsqlparser.nodes.TParseTreeVisitor; 012import gudusoft.gsqlparser.nodes.mssql.TSetRowCountSqlNode; 013 014 015/** 016 * sql server set rowcount statement 017 * <p> SET ROWCOUNT { number | @number_var } 018 */ 019public class TMssqlSetRowCount extends TCustomSqlStatement { 020 021 private TExpression numberExpr; 022 023 /** 024 * SET ROWCOUNT { number | @number_var } 025 * @return number or @number_var 026 */ 027 public TExpression getNumberExpr() { 028 return numberExpr; 029 } 030 031 public TMssqlSetRowCount(EDbVendor dbvendor) { 032 super(dbvendor); 033 sqlstatementtype = ESqlStatementType.sstmssqlsetrowcount; 034 } 035 036 public int doParseStatement(TCustomSqlStatement psql) { 037 if (rootNode == null) return -1; 038 super.doParseStatement(psql); 039 numberExpr = ((TSetRowCountSqlNode)rootNode).getRowNumber(); 040 041 return 0; 042 } 043 044 public void accept(TParseTreeVisitor v){ 045 v.preVisit(this); 046 v.postVisit(this); 047 } 048 049 public void acceptChildren(TParseTreeVisitor v){ 050 v.preVisit(this); 051 numberExpr.accept(v); 052 v.postVisit(this); 053 } 054 055 public void setNumberExpr(TExpression numberExpr) { 056 this.numberExpr = numberExpr; 057 } 058}