From 22fe0ed922f1e7214d6879d0b88bd19191e9a579 Mon Sep 17 00:00:00 2001 From: xjl002 <94519665+xjl002@users.noreply.github.com> Date: Sat, 25 Mar 2023 18:42:39 +0800 Subject: [PATCH] fix bug : from file fold name start with number. --- .../com/scudata/dm/query/SimpleSelect.java | 629 +++++++++--------- 1 file changed, 315 insertions(+), 314 deletions(-) diff --git a/src/main/java/com/scudata/dm/query/SimpleSelect.java b/src/main/java/com/scudata/dm/query/SimpleSelect.java index 24177fc57..f146b0ba6 100644 --- a/src/main/java/com/scudata/dm/query/SimpleSelect.java +++ b/src/main/java/com/scudata/dm/query/SimpleSelect.java @@ -99,8 +99,8 @@ public class SimpleSelect abstract class Node { abstract public boolean hasGather(); - abstract public boolean hasField(Boolean isOrder); //用于group by和order by子句判断是否包含字段,聚合函数与一般函数无差别 - abstract public boolean hasField(String fieldName); //用于select子句判断是否包含某字段,聚合函数需区别于一般函数 + abstract public boolean hasField(Boolean isOrder); //鐢ㄤ簬group by鍜宱rder by瀛愬彞鍒ゆ柇鏄惁鍖呭惈瀛楁锛岃仛鍚堝嚱鏁颁笌涓鑸嚱鏁版棤宸埆 + abstract public boolean hasField(String fieldName); //鐢ㄤ簬select瀛愬彞鍒ゆ柇鏄惁鍖呭惈鏌愬瓧娈碉紝鑱氬悎鍑芥暟闇鍖哄埆浜庝竴鑸嚱鏁 abstract public boolean hasFieldNotGroup(); abstract public void optimize(); abstract public void collect(); @@ -171,13 +171,13 @@ public TableNode(String tableName, String aliasName, FileObject fileObject, int if(fileObject == null) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":TableNode.TableNode, 文件对象不能为空值"); + throw new RQException(mm.getMessage("syntax.error") + ":TableNode.TableNode, 鏂囦欢瀵硅薄涓嶈兘涓虹┖鍊"); } if(type == TableNode.TYPE_ICR) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":TableNode.TableNode, 表文件类型异常"); + throw new RQException(mm.getMessage("syntax.error") + ":TableNode.TableNode, 琛ㄦ枃浠剁被鍨嬪紓甯"); } else { @@ -240,7 +240,7 @@ public String getName() if(this.name == null) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":TableNode.getName, 无效的表节点"); + throw new RQException(mm.getMessage("syntax.error") + ":TableNode.getName, 鏃犳晥鐨勮〃鑺傜偣"); } return this.name; } @@ -250,7 +250,7 @@ public String getAlias() if(this.alias == null) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":TableNode.getAlias, 无效的表节点"); + throw new RQException(mm.getMessage("syntax.error") + ":TableNode.getAlias, 鏃犳晥鐨勮〃鑺傜偣"); } return this.alias; } @@ -260,7 +260,7 @@ public int getType() return this.type; } - public void setWhere(String whereExp) // 组表专用提前过滤 + public void setWhere(String whereExp) // 缁勮〃涓撶敤鎻愬墠杩囨护 { if(whereExp != null && !whereExp.isEmpty()) { @@ -298,7 +298,7 @@ public ICursor getCursor() //return new FileCursor(new FileObject("d:/test/fileAttr.txt"), 1, 1, this.fields, null, null, "t", ctx); } - if(this.type == TableNode.TYPE_GTB) // 组表文件 + if(this.type == TableNode.TYPE_GTB) // 缁勮〃鏂囦欢 { ICursor []cursors2 = new ICursor[this.files.size()]; metas = new ArrayList(); @@ -313,14 +313,14 @@ public ICursor getCursor() catch (Exception e) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":TableNode.getCursor, 打开组表文件失败", e); + throw new RQException(mm.getMessage("syntax.error") + ":TableNode.getCursor, 鎵撳紑缁勮〃鏂囦欢澶辫触", e); } PhyTable meta = group.getBaseTable(); if(meta == null) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":TableNode.getCursor, 组表中没有创建基表"); + throw new RQException(mm.getMessage("syntax.error") + ":TableNode.getCursor, 缁勮〃涓病鏈夊垱寤哄熀琛"); } metas.add(meta); @@ -358,7 +358,7 @@ else if(parallelNumber > 1) ICursor []cursors = new ICursor[parallelNumber]; for (int i = 0; i < parallelNumber; ++i) { - cursors[i] = meta.cursor(null, fields, where, null, null, null, i+1, parallelNumber, null, ctx); + cursors[i] = meta.cursor(null, fields, where, null, null, null, i+1, parallelNumber, (Integer) null, ctx); } cursors2[z] = new MultipathCursors(cursors, ctx); } @@ -367,11 +367,11 @@ else if(parallelNumber > 1) if (this.files.size() == 1) icursor = cursors2[0]; else icursor = new ConjxCursor(cursors2); } - else if(this.type == TableNode.TYPE_BIN) // 集文件 + else if(this.type == TableNode.TYPE_BIN) // 闆嗘枃浠 { ICursor []cursors2 = new ICursor[this.files.size()]; for (int z=0; z 1) if (this.files.size() == 1) icursor = cursors2[0]; else icursor = new ConjxCursor(cursors2); } - else if(this.type == TableNode.TYPE_CSV)// CSV文件 + else if(this.type == TableNode.TYPE_CSV)// CSV鏂囦欢 { ICursor []cursors = new ICursor[this.files.size()]; for (int i=0; i 1) if (this.files.size() == 1) icursor = cursors[0]; else icursor = new ConjxCursor(cursors); } - else if(this.type == TableNode.TYPE_TXT)// TXT文件 + else if(this.type == TableNode.TYPE_TXT)// TXT鏂囦欢 { ICursor []cursors = new ICursor[this.files.size()]; for (int i=0; i 1) if (this.files.size() == 1) icursor = cursors[0]; else icursor = new ConjxCursor(cursors); } - else if(this.type == TableNode.TYPE_XLS || this.type == TableNode.TYPE_XLSX)// XLS文件 + else if(this.type == TableNode.TYPE_XLS || this.type == TableNode.TYPE_XLSX)// XLS鏂囦欢 { ICursor []cursors = new ICursor[this.files.size()]; for (int z=0; z 1) // if(index == -1) // { // MessageManager mm = ParseMessage.get(); -// throw new RQException(mm.getMessage("syntax.error") + ":TableNode.getCursor, 要查询的字段名不在临时表中"); +// throw new RQException(mm.getMessage("syntax.error") + ":TableNode.getCursor, 瑕佹煡璇㈢殑瀛楁鍚嶄笉鍦ㄤ复鏃惰〃涓"); // } // colExps[i] = new Expression(String.format("#%d", index+1)); // } @@ -522,7 +522,7 @@ else if(parallelNumber > 1) catch(IOException e) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":TableNode.getCursor, 读取XLS格式的表文件失败", e); + throw new RQException(mm.getMessage("syntax.error") + ":TableNode.getCursor, 璇诲彇XLS鏍煎紡鐨勮〃鏂囦欢澶辫触", e); } finally { @@ -540,7 +540,7 @@ else if(parallelNumber > 1) catch (IOException e) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":TableNode.getCursor, 关闭XLS文件失败", e); + throw new RQException(mm.getMessage("syntax.error") + ":TableNode.getCursor, 鍏抽棴XLS鏂囦欢澶辫触", e); } } } @@ -576,7 +576,7 @@ else if(result instanceof BaseRecord) FileObject foi = this.files.get(i); if (!(seq instanceof Table)) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":TableNode.getCursor, 读取文件数据失败"); + throw new RQException(mm.getMessage("syntax.error") + ":TableNode.getCursor, 璇诲彇鏂囦欢鏁版嵁澶辫触"); } Table t2 = (Table)seq; t2 = t2.derive(new String[]{"_file","_ext","_date","_size"}, new Expression[]{new Expression("\""+foi.getFileName()+"\"") @@ -598,11 +598,11 @@ else if(result instanceof BaseRecord) catch(Exception e) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":TableNode.getCursor, 读取JSON文件失败", e); + throw new RQException(mm.getMessage("syntax.error") + ":TableNode.getCursor, 璇诲彇JSON鏂囦欢澶辫触", e); } } } - else if(this.cursor != null) //子查询临时表 + else if(this.cursor != null) //瀛愭煡璇复鏃惰〃 { if(this.cursor instanceof MemoryCursor) { @@ -630,7 +630,7 @@ else if(result instanceof BaseRecord) if(index == -1) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":TableNode.getCursor, 要查询的字段名不在临时表中"); + throw new RQException(mm.getMessage("syntax.error") + ":TableNode.getCursor, 瑕佹煡璇㈢殑瀛楁鍚嶄笉鍦ㄤ复鏃惰〃涓"); } colExps[i] = new Expression(String.format("#%d", index+1)); } @@ -640,10 +640,10 @@ else if(result instanceof BaseRecord) else { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":TableNode.getCursor, 表节点结构异常"); + throw new RQException(mm.getMessage("syntax.error") + ":TableNode.getCursor, 琛ㄨ妭鐐圭粨鏋勫紓甯"); } - this.fields = null;//setAccessColumn只能起一次作用 + this.fields = null;//setAccessColumn鍙兘璧蜂竴娆′綔鐢 if(isMemory && !(icursor instanceof MemoryCursor)) { @@ -655,22 +655,22 @@ else if(result instanceof BaseRecord) public void setAccessColumn(String[] colNames) { - this.fields = colNames;//getCursor后置null + this.fields = colNames;//getCursor鍚庣疆null } - public DataStruct dataStruct() //这个是求原始表的数据结构而不是最终游标的 + public DataStruct dataStruct() //杩欎釜鏄眰鍘熷琛ㄧ殑鏁版嵁缁撴瀯鑰屼笉鏄渶缁堟父鏍囩殑 { if(this.struct == null) { - String[] fields = this.fields;//备份 - Expression where = this.where;//备份 + String[] fields = this.fields;//澶囦唤 + Expression where = this.where;//澶囦唤 - this.fields = null;//setAccessColumn不应该影响dataStruct - this.where = null;//防止提前过滤造成fetch为空时获取不到数据结构 + this.fields = null;//setAccessColumn涓嶅簲璇ュ奖鍝峝ataStruct + this.where = null;//闃叉鎻愬墠杩囨护閫犳垚fetch涓虹┖鏃惰幏鍙栦笉鍒版暟鎹粨鏋 if(this.file != null || this.meta != null || this.cursor != null) { - if(this.type == TableNode.TYPE_GTB) // 组表文件 + if(this.type == TableNode.TYPE_GTB) // 缁勮〃鏂囦欢 { if(this.meta != null) { @@ -686,14 +686,14 @@ else if(this.file != null) catch (Exception e) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":TableNode.dataStruct, 打开组表文件失败", e); + throw new RQException(mm.getMessage("syntax.error") + ":TableNode.dataStruct, 鎵撳紑缁勮〃鏂囦欢澶辫触", e); } PhyTable table = group.getBaseTable(); if(table == null) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":TableNode.dataStruct, 组表中没有创建基表"); + throw new RQException(mm.getMessage("syntax.error") + ":TableNode.dataStruct, 缁勮〃涓病鏈夊垱寤哄熀琛"); } this.struct = new DataStruct(table.getColNames()); @@ -705,7 +705,7 @@ else if(this.file != null) if(icursor != null) { Sequence seq = icursor.peek(1); - System.out.println(seq); + //System.out.println(seq); if(seq != null) { this.struct = seq.dataStruct(); @@ -724,8 +724,8 @@ else if(this.file != null) } } - this.fields = fields;//还原setAccessColumn - this.where = where; //还原提前过滤 + this.fields = fields;//杩樺師setAccessColumn + this.where = where; //杩樺師鎻愬墠杩囨护 } //System.out.println("this.struct="+Arrays.toString(this.struct.getFieldNames())); @@ -738,7 +738,7 @@ public boolean isIdentic(String symbol) if(this.alias == null) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":TableNode.isIdentic, 无效的表节点"); + throw new RQException(mm.getMessage("syntax.error") + ":TableNode.isIdentic, 鏃犳晥鐨勮〃鑺傜偣"); } if(symbol == null) @@ -759,14 +759,14 @@ public String toExpression() if(icursor == null) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":TableNode.toExpression, 无效的表节点"); + throw new RQException(mm.getMessage("syntax.error") + ":TableNode.toExpression, 鏃犳晥鐨勮〃鑺傜偣"); } Sequence sequence = icursor.peek(1); if(sequence == null || sequence.length() != 1 || sequence.dataStruct() == null ||sequence.dataStruct().getFieldCount() != 1) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":TableNode.toExpression, 非IN/EXISTS子句的子查询必须能解析为单一值"); + throw new RQException(mm.getMessage("syntax.error") + ":TableNode.toExpression, 闈濱N/EXISTS瀛愬彞鐨勫瓙鏌ヨ蹇呴』鑳借В鏋愪负鍗曚竴鍊"); } else { @@ -807,18 +807,18 @@ else if(param instanceof Date) else { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("function.paramError") + ":scanExp, 尚不支持的数据类型"); + throw new RQException(mm.getMessage("function.paramError") + ":scanExp, 灏氫笉鏀寔鐨勬暟鎹被鍨"); } return value; } } - public boolean hasGather() //不会被select不考虑 + public boolean hasGather() //涓嶄細琚玸elect涓嶈冭檻 { return false; } - public boolean hasFieldNotGroup() //不会被select不考虑 + public boolean hasFieldNotGroup() //涓嶄細琚玸elect涓嶈冭檻 { return false; } @@ -874,7 +874,7 @@ public String getName() if(this.name == null) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":FieldNode.getName, 无效的字段节点"); + throw new RQException(mm.getMessage("syntax.error") + ":FieldNode.getName, 鏃犳晥鐨勫瓧娈佃妭鐐"); } return this.name; @@ -885,7 +885,7 @@ public String getOriginal() if(this.original == null) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":FieldNode.getOriginal, 无效的字段节点"); + throw new RQException(mm.getMessage("syntax.error") + ":FieldNode.getOriginal, 鏃犳晥鐨勫瓧娈佃妭鐐"); } return this.original; @@ -896,7 +896,7 @@ public void optimize() if(this.name == null) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":FieldNode.optimize, 无效的字段节点"); + throw new RQException(mm.getMessage("syntax.error") + ":FieldNode.optimize, 鏃犳晥鐨勫瓧娈佃妭鐐"); } String name = this.name.toLowerCase(); @@ -911,7 +911,7 @@ public String toExpression() if(this.name == null) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":FieldNode.toExpression, 无效的字段节点"); + throw new RQException(mm.getMessage("syntax.error") + ":FieldNode.toExpression, 鏃犳晥鐨勫瓧娈佃妭鐐"); } return "'"+this.name+"'"; @@ -927,7 +927,7 @@ public boolean isIdentic(String fieldName) if(this.name == null) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":FieldNode.isIdentic, 无效的字段节点"); + throw new RQException(mm.getMessage("syntax.error") + ":FieldNode.isIdentic, 鏃犳晥鐨勫瓧娈佃妭鐐"); } return this.name.equalsIgnoreCase(fieldName); @@ -938,7 +938,7 @@ public boolean hasFieldNotGroup() if(this.name == null) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":FieldNode.hasFieldNotGroup, 无效的字段节点"); + throw new RQException(mm.getMessage("syntax.error") + ":FieldNode.hasFieldNotGroup, 鏃犳晥鐨勫瓧娈佃妭鐐"); } if(groupList == null && groupList.size() == 0) @@ -994,7 +994,7 @@ public String getValue() if(this.value == null) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":NormalNode.getValue, 无效的常数节点"); + throw new RQException(mm.getMessage("syntax.error") + ":NormalNode.getValue, 鏃犳晥鐨勫父鏁拌妭鐐"); } return this.value; @@ -1009,7 +1009,7 @@ public String toExpression() if(this.value == null) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":NormalNode.toExpression, 无效的常数节点"); + throw new RQException(mm.getMessage("syntax.error") + ":NormalNode.toExpression, 鏃犳晥鐨勫父鏁拌妭鐐"); } return this.value; @@ -1044,7 +1044,7 @@ public boolean hasField(Boolean isOrder) if(this.value == null) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":NormalNode.hasField, 无效的常数节点"); + throw new RQException(mm.getMessage("syntax.error") + ":NormalNode.hasField, 鏃犳晥鐨勫父鏁拌妭鐐"); } if(aliasList != null) { @@ -1081,7 +1081,7 @@ public ArrayList getNodeList() if(this.list == null) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":ExpressionNode.getNodeList, 无效的表达式节点"); + throw new RQException(mm.getMessage("syntax.error") + ":ExpressionNode.getNodeList, 鏃犳晥鐨勮〃杈惧紡鑺傜偣"); } return this.list; @@ -1092,7 +1092,7 @@ public boolean hasGather() if(this.list == null) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":ExpressionNode.hasGather, 无效的表达式节点"); + throw new RQException(mm.getMessage("syntax.error") + ":ExpressionNode.hasGather, 鏃犳晥鐨勮〃杈惧紡鑺傜偣"); } for(int i=0,z=this.list.size();i getNodeList() if(this.list == null) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":CaseNode.getNodeList, 无效的Case节点"); + throw new RQException(mm.getMessage("syntax.error") + ":CaseNode.getNodeList, 鏃犳晥鐨凜ase鑺傜偣"); } return this.list; } @@ -2294,7 +2294,7 @@ public void optimize() if(this.list == null) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":CaseNode.optimize, 无效的Case节点"); + throw new RQException(mm.getMessage("syntax.error") + ":CaseNode.optimize, 鏃犳晥鐨凜ase鑺傜偣"); } for(int i = 0, z = this.list.size(); i < z; i++) @@ -2333,7 +2333,7 @@ public boolean hasGather() if(this.list == null) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":CaseNode.hasGather, 无效的表达式节点"); + throw new RQException(mm.getMessage("syntax.error") + ":CaseNode.hasGather, 鏃犳晥鐨勮〃杈惧紡鑺傜偣"); } for(int i=0,z=this.list.size();i param if(this.type != Exist_Type && this.type != Select_Type && this.type != In_Type && this.type != Where_Type) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("function.paramError") + ":SubQueryCursor, 子查询游标初始化参数错误"); + throw new RQException(mm.getMessage("function.paramError") + ":SubQueryCursor, 瀛愭煡璇㈡父鏍囧垵濮嬪寲鍙傛暟閿欒"); } this.ics = ics; this.paramList = paramList; @@ -2820,19 +2820,19 @@ public SubQueryCursor(ICursor cursor, int type, ICellSet ics, List param if(this.subQueryListListList == null) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("function.paramError") + ":SubQueryCursor, 子查询游标初始化参数错误"); + throw new RQException(mm.getMessage("function.paramError") + ":SubQueryCursor, 瀛愭煡璇㈡父鏍囧垵濮嬪寲鍙傛暟閿欒"); } this.fieldNameListList = fieldNameListList; if(this.fieldNameListList == null) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("function.paramError") + ":SubQueryCursor, 子查询游标初始化参数错误"); + throw new RQException(mm.getMessage("function.paramError") + ":SubQueryCursor, 瀛愭煡璇㈡父鏍囧垵濮嬪寲鍙傛暟閿欒"); } this.colNameList = colNameList; if(this.colNameList == null) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("function.paramError") + ":SubQueryCursor, 子查询游标初始化参数错误"); + throw new RQException(mm.getMessage("function.paramError") + ":SubQueryCursor, 瀛愭煡璇㈡父鏍囧垵濮嬪寲鍙傛暟閿欒"); } this.ctx = ctx; @@ -2866,7 +2866,7 @@ protected Sequence get(int n) if(!(obj instanceof BaseRecord)) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":SubQueryCursor.get, 查询结果序列必须由记录组成"); + throw new RQException(mm.getMessage("syntax.error") + ":SubQueryCursor.get, 鏌ヨ缁撴灉搴忓垪蹇呴』鐢辫褰曠粍鎴"); } BaseRecord rec = (BaseRecord) obj; @@ -2903,7 +2903,7 @@ else if(this.type == SubQueryCursor.Select_Type || this.type == SubQueryCursor.W if(sq.length() != 1 || !(sq.get(1) instanceof BaseRecord) || sq.dataStruct() == null || sq.dataStruct().getFieldCount() != 1) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":SubQueryCursor.get, SELECT/WHERE子句中子查询结果异常"); + throw new RQException(mm.getMessage("syntax.error") + ":SubQueryCursor.get, SELECT/WHERE瀛愬彞涓瓙鏌ヨ缁撴灉寮傚父"); } val = ((BaseRecord)sq.get(1)).getFieldValue(0); } @@ -2915,7 +2915,7 @@ else if(this.type == SubQueryCursor.In_Type) if(sq.length() == 0 ||!(sq.get(1) instanceof BaseRecord) || sq.dataStruct() == null || sq.dataStruct().getFieldCount() != 1) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":SubQueryCursor.get, IN子句中子查询结果异常"); + throw new RQException(mm.getMessage("syntax.error") + ":SubQueryCursor.get, IN瀛愬彞涓瓙鏌ヨ缁撴灉寮傚父"); } v.add(((BaseRecord)sq.get(p)).getFieldValue(0)); } @@ -3013,7 +3013,7 @@ public void setLevelFunction(String levelName, String levelFunction) if(levelName == null || levelName.trim().isEmpty() || levelFunction == null || levelFunction.trim().isEmpty()) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("function.paramError") + ":setLevelFunction, 参数不能为空值"); + throw new RQException(mm.getMessage("function.paramError") + ":setLevelFunction, 鍙傛暟涓嶈兘涓虹┖鍊"); } levelName = levelName.toLowerCase(); levelFunction = levelFunction.toLowerCase(); @@ -3037,7 +3037,7 @@ private String getLevelFunction(String levelName) if(levelName == null || levelName.trim().isEmpty()) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("function.paramError") + ":getLevelFunction, 参数不能为空值"); + throw new RQException(mm.getMessage("function.paramError") + ":getLevelFunction, 鍙傛暟涓嶈兘涓虹┖鍊"); } String function = this.levelMap.get(levelName.toLowerCase()); if(function == null) @@ -3124,7 +3124,7 @@ else if(param instanceof PhyTable) else { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("function.paramError") + ":setSQLParameters, 尚不支持的参数类型"); + throw new RQException(mm.getMessage("function.paramError") + ":setSQLParameters, 灏氫笉鏀寔鐨勫弬鏁扮被鍨"); } } @@ -3217,13 +3217,13 @@ public void scanSelect(Token []tokens, int start, int next) else { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanSelect, SQL语句必须以SELECT关键字开头"); + throw new RQException(mm.getMessage("syntax.error") + ":scanSelect, SQL璇彞蹇呴』浠ELECT鍏抽敭瀛楀紑澶"); } if (start >= next) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanSelect, 起始位置超出结束位置"); + throw new RQException(mm.getMessage("syntax.error") + ":scanSelect, 璧峰浣嶇疆瓒呭嚭缁撴潫浣嶇疆"); } start = scanQuantifies(tokens, start, next); @@ -3265,7 +3265,7 @@ else if (token.equals("OFFSET")) break; } } - else if (token.getType() == Tokenizer.LPAREN) // 跳过() + else if (token.getType() == Tokenizer.LPAREN) // 璺宠繃() { i = Tokenizer.scanParen(tokens, i, next); } @@ -3321,7 +3321,7 @@ private int scanQuantifies(Token []tokens, int start, int next) if (c >= next) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanQuantifies, 起始位置超出结束位置"); + throw new RQException(mm.getMessage("syntax.error") + ":scanQuantifies, 璧峰浣嶇疆瓒呭嚭缁撴潫浣嶇疆"); } this.hasDistinct = true; @@ -3343,14 +3343,14 @@ private int scanQuantifies(Token []tokens, int start, int next) catch(NumberFormatException nfe) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanQuantifies, TOP关键字后面必须接非负整数", nfe); + throw new RQException(mm.getMessage("syntax.error") + ":scanQuantifies, TOP鍏抽敭瀛楀悗闈㈠繀椤绘帴闈炶礋鏁存暟", nfe); } c++; if (c >= next) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanQuantifies, 起始位置超出结束位置"); + throw new RQException(mm.getMessage("syntax.error") + ":scanQuantifies, 璧峰浣嶇疆瓒呭嚭缁撴潫浣嶇疆"); } } @@ -3371,7 +3371,7 @@ private void scanLimit(Token []tokens, int start, int next) if (c >= next) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanLimit, 起始位置超出结束位置"); + throw new RQException(mm.getMessage("syntax.error") + ":scanLimit, 璧峰浣嶇疆瓒呭嚭缁撴潫浣嶇疆"); } try { @@ -3391,7 +3391,7 @@ private void scanLimit(Token []tokens, int start, int next) catch(NumberFormatException nfe) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanLimit, Limit关键字后面必须接非负整数", nfe); + throw new RQException(mm.getMessage("syntax.error") + ":scanLimit, Limit鍏抽敭瀛楀悗闈㈠繀椤绘帴闈炶礋鏁存暟", nfe); } } } @@ -3405,7 +3405,7 @@ private void scanOffset(Token []tokens, int start, int next) if (c >= next) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanOffset, 起始位置超出结束位置"); + throw new RQException(mm.getMessage("syntax.error") + ":scanOffset, 璧峰浣嶇疆瓒呭嚭缁撴潫浣嶇疆"); } try { @@ -3418,7 +3418,7 @@ private void scanOffset(Token []tokens, int start, int next) catch(NumberFormatException nfe) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanOffset, Offset关键字后面必须接非负整数", nfe); + throw new RQException(mm.getMessage("syntax.error") + ":scanOffset, Offset鍏抽敭瀛楀悗闈㈠繀椤绘帴闈炶礋鏁存暟", nfe); } } } @@ -3436,7 +3436,7 @@ private void scanFrom(Token[] tokens, int start, int next) if (start >= tableNext) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 起始位置超出结束位置"); + throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 璧峰浣嶇疆瓒呭嚭缁撴潫浣嶇疆"); } if(tokens[start].getString().equals("{")) @@ -3445,7 +3445,7 @@ private void scanFrom(Token[] tokens, int start, int next) if(pos == tableNext) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 集算器表达式起始位置超出结束位置"); + throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 闆嗙畻鍣ㄨ〃杈惧紡璧峰浣嶇疆瓒呭嚭缁撴潫浣嶇疆"); } int end = Tokenizer.scanBrace(tokens, start, tableNext); @@ -3470,7 +3470,7 @@ else if(end + 1 == tableNext) else { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 集算器表达式的结尾处有误"); + throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 闆嗙畻鍣ㄨ〃杈惧紡鐨勭粨灏惧鏈夎"); } if(aliasName == null) @@ -3495,7 +3495,7 @@ else if(end + 1 == tableNext) catch(Exception ex) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 异常的表名(注意表名不能为关键字或以数字开头):"+expStr); + throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 寮傚父鐨勮〃鍚(娉ㄦ剰琛ㄥ悕涓嶈兘涓哄叧閿瓧鎴栦互鏁板瓧寮澶):"+expStr); } if(obj instanceof ICursor) @@ -3526,7 +3526,7 @@ else if(obj instanceof PhyTable) else { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 不支持的表变量类型"); + throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 涓嶆敮鎸佺殑琛ㄥ彉閲忕被鍨"); } } else if(tokens[start].getType() == Tokenizer.LPAREN) @@ -3535,7 +3535,7 @@ else if(tokens[start].getType() == Tokenizer.LPAREN) if(pos == tableNext) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 临时表子句起始位置超出结束位置"); + throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 涓存椂琛ㄥ瓙鍙ヨ捣濮嬩綅缃秴鍑虹粨鏉熶綅缃"); } int end = Tokenizer.scanParen(tokens, start, tableNext); @@ -3555,7 +3555,7 @@ else if(end + 1 == tableNext) else { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 临时表子句的结尾处有误"); + throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 涓存椂琛ㄥ瓙鍙ョ殑缁撳熬澶勬湁璇"); } if(aliasName == null) @@ -3568,7 +3568,7 @@ else if(end + 1 == tableNext) if(pos + 1 != end) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 临时表占位符格式错误"); + throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 涓存椂琛ㄥ崰浣嶇鏍煎紡閿欒"); } if(this.ds != null) { @@ -3603,7 +3603,8 @@ else if(this.tmd != null) while(pos < tableNext) { tableName = tableName + tokens[pos].getOriginString(); - tableName = tableName + tokens[pos].getSpaces(); + //xingjl 20230323 from D://test/1闆嗙畻鍣/emps.txt锛屽幓鎺1鍚庨潰绌烘牸 + //tableName = tableName + tokens[pos].getSpaces(); pos++; } tableName = tableName.trim(); @@ -3666,7 +3667,7 @@ else if(this.tmd != null) } if (fs == null || fs.length == 0) { MessageManager mm = ParseMessage.get(); - throw new RQException("not found data file["+tableName+"]、["+Env.getMainPath()+"/"+tableName+"]"); + throw new RQException("not found data file["+tableName+"]銆乕"+Env.getMainPath()+"/"+tableName+"]"); } //System.out.println("fs.length " + fs.length); FileObject fileObject = new FileObject(fs[0].getAbsolutePath(), null, "s", this.ctx); @@ -3675,7 +3676,7 @@ else if(this.tmd != null) if(!fileObject.isExists()) { String password = null; - int index = tableName.lastIndexOf(":"); //可能有密码,尝试去除 + int index = tableName.lastIndexOf(":"); //鍙兘鏈夊瘑鐮侊紝灏濊瘯鍘婚櫎 if(index != -1) { String newName = tableName.substring(0, index).trim(); @@ -3713,7 +3714,7 @@ else if(aliasName == null || aliasName.isEmpty()) if(!password.startsWith("'") || !password.endsWith("'")) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 文件密码必须使用单引号括起来"); + throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 鏂囦欢瀵嗙爜蹇呴』浣跨敤鍗曞紩鍙锋嫭璧锋潵"); } this.password = password.substring(1, password.length() - 1); tableName = fileObject.getFileName(); @@ -3786,7 +3787,7 @@ else if(fileExists && tableName.toLowerCase().endsWith(".dfx")) catch(Exception ex) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 异常的表名(注意表名不能为关键字或以数字开头):"+paramStr); + throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 寮傚父鐨勮〃鍚(娉ㄦ剰琛ㄥ悕涓嶈兘涓哄叧閿瓧鎴栦互鏁板瓧寮澶):"+paramStr); } if(obj instanceof ICursor) @@ -3817,10 +3818,10 @@ else if(obj instanceof PhyTable) else { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 不支持的表变量类型"); + throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 涓嶆敮鎸佺殑琛ㄥ彉閲忕被鍨"); } } - else if(tokens[start].getType() == Tokenizer.IDENT) // 尝试解析为直接写变量名的形式,否则抛出异常 + else if(tokens[start].getType() == Tokenizer.IDENT) // 灏濊瘯瑙f瀽涓虹洿鎺ュ啓鍙橀噺鍚嶇殑褰㈠紡锛屽惁鍒欐姏鍑哄紓甯 { pos = start + 1; if(pos == tableNext) @@ -3841,7 +3842,7 @@ else if(pos + 2 == tableNext && tokens[pos].isKeyWord("AS") && tokens[pos + 1].g else { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 异常的表名(注意表名不能为关键字或以数字开头):"+tokens[start].getOriginString()); + throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 寮傚父鐨勮〃鍚(娉ㄦ剰琛ㄥ悕涓嶈兘涓哄叧閿瓧鎴栦互鏁板瓧寮澶):"+tokens[start].getOriginString()); } if(aliasName == null) @@ -3857,7 +3858,7 @@ else if(pos + 2 == tableNext && tokens[pos].isKeyWord("AS") && tokens[pos + 1].g catch(Exception ex) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 异常的表名(注意表名不能为关键字或以数字开头):"+tableName); + throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 寮傚父鐨勮〃鍚(娉ㄦ剰琛ㄥ悕涓嶈兘涓哄叧閿瓧鎴栦互鏁板瓧寮澶):"+tableName); } if(obj instanceof ICursor) @@ -3888,13 +3889,13 @@ else if(obj instanceof PhyTable) else { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 不支持的表变量类型"); + throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 涓嶆敮鎸佺殑琛ㄥ彉閲忕被鍨"); } } else { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 异常的表名(注意表名不能为关键字或以数字开头):"+tokens[start].getOriginString()); + throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 寮傚父鐨勮〃鍚(娉ㄦ剰琛ㄥ悕涓嶈兘涓哄叧閿瓧鎴栦互鏁板瓧寮澶):"+tokens[start].getOriginString()); } if (this.tableNode != null) this.tableNode.setFiles(objs); @@ -3919,7 +3920,7 @@ else if(obj instanceof PhyTable) MessageManager mm = ParseMessage.get(); String n = ":"; try {n += tokens[start].getString();}catch(Exception e){} - throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 异常的表名(注意表名不能为关键字或以数字开头):"+n); + throw new RQException(mm.getMessage("syntax.error") + ":scanFrom, 寮傚父鐨勮〃鍚(娉ㄦ剰琛ㄥ悕涓嶈兘涓哄叧閿瓧鎴栦互鏁板瓧寮澶):"+n); } } @@ -3941,7 +3942,7 @@ private void scanColumns(Token []tokens, int start, int next) if (start >= next) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanColumns, 起始位置超出结束位置"); + throw new RQException(mm.getMessage("syntax.error") + ":scanColumns, 璧峰浣嶇疆瓒呭嚭缁撴潫浣嶇疆"); } } } @@ -3952,7 +3953,7 @@ private void scanColumn(Token []tokens, int start, int next) if (start >= next) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanColumn, 起始位置超出结束位置"); + throw new RQException(mm.getMessage("syntax.error") + ":scanColumn, 璧峰浣嶇疆瓒呭嚭缁撴潫浣嶇疆"); } if (start + 1 == next && tokens[start].equals("*")) @@ -4043,7 +4044,7 @@ else if(start + 3 < next if(end + 2 == next) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanColumn, As关键字后面缺少列别名"); + throw new RQException(mm.getMessage("syntax.error") + ":scanColumn, As鍏抽敭瀛楀悗闈㈢己灏戝垪鍒悕"); } begin = end + 2; } @@ -4106,7 +4107,7 @@ else if(start + 3 < next if(seq == null || seq.length() != 1 || seq.dataStruct() == null || seq.dataStruct().getFieldCount() != 1) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanColumn, 在SELECT子句中返回常数值的子查询只能为单行单列"); + throw new RQException(mm.getMessage("syntax.error") + ":scanColumn, 鍦⊿ELECT瀛愬彞涓繑鍥炲父鏁板肩殑瀛愭煡璇㈠彧鑳戒负鍗曡鍗曞垪"); } Object val = seq.get(1); if(val instanceof BaseRecord) @@ -4120,7 +4121,7 @@ else if(start + 3 < next else { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanColumn, 返回常数值的子查询只能为单列"); + throw new RQException(mm.getMessage("syntax.error") + ":scanColumn, 杩斿洖甯告暟鍊肩殑瀛愭煡璇㈠彧鑳戒负鍗曞垪"); } } @@ -4145,7 +4146,7 @@ else if(start + 3 < next else { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanColumn, 新起列别名不应为纯数字或特殊字符"); + throw new RQException(mm.getMessage("syntax.error") + ":scanColumn, 鏂拌捣鍒楀埆鍚嶄笉搴斾负绾暟瀛楁垨鐗规畩瀛楃"); } } else if (!prevToken.canHaveRightExp()) @@ -4158,7 +4159,7 @@ else if (!prevToken.canHaveRightExp()) else if (alias.getType() != Tokenizer.KEYWORD && alias.getType() != Tokenizer.RPAREN && alias.getType() != Tokenizer.LEVELMARK && alias.getType() != Tokenizer.TABLEMARK) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanColumn, 某个待查询列的表达式语法错误"); + throw new RQException(mm.getMessage("syntax.error") + ":scanColumn, 鏌愪釜寰呮煡璇㈠垪鐨勮〃杈惧紡璇硶閿欒"); } } } @@ -4167,7 +4168,7 @@ else if (alias.getType() != Tokenizer.KEYWORD && alias.getType() != Tokenizer.RP if(expNode.getNodeList() == null || expNode.getNodeList().size() == 0) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanColumn, 某个待查询列的表达式为空值"); + throw new RQException(mm.getMessage("syntax.error") + ":scanColumn, 鏌愪釜寰呮煡璇㈠垪鐨勮〃杈惧紡涓虹┖鍊"); } if(aliasName != null) @@ -4201,7 +4202,7 @@ else if (alias.getType() != Tokenizer.KEYWORD && alias.getType() != Tokenizer.RP public static String scanExp(Token []tokens, List paramList) { - SimpleSelect sdql = new SimpleSelect(null, null);//仅用于解析而不获取游标,不需要上下文对象 + SimpleSelect sdql = new SimpleSelect(null, null);//浠呯敤浜庤В鏋愯屼笉鑾峰彇娓告爣锛屼笉闇瑕佷笂涓嬫枃瀵硅薄 sdql.setSQLParameters(paramList); SimpleSelect.ExpressionNode expNode = sdql.scanExp(tokens, 0, tokens.length); expNode.setFromWhere(); @@ -4250,12 +4251,12 @@ else if (tokens[pos].getType() == Tokenizer.DOT) //T.F if (pos == next) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 起始位置超出结束位置"); + throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 璧峰浣嶇疆瓒呭嚭缁撴潫浣嶇疆"); } else if (pos + 1 < next && tokens[pos + 1].getType() == Tokenizer.LPAREN) // T.sum(exp) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 函数表达式不支持这种写法"); + throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 鍑芥暟琛ㄨ揪寮忎笉鏀寔杩欑鍐欐硶"); } else // T.F { @@ -4264,7 +4265,7 @@ else if (pos + 1 < next && tokens[pos + 1].getType() == Tokenizer.LPAREN) // T.s if (tokens[begin + 2].getType() != Tokenizer.IDENT) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 某待查询列表名后接非字段类型"); + throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 鏌愬緟鏌ヨ鍒楄〃鍚嶅悗鎺ラ潪瀛楁绫诲瀷"); } int fieldNext = begin + 3; @@ -4444,14 +4445,14 @@ else if(isCountIf && tempList.size() > 0) if(isCountIf || !functionName.equalsIgnoreCase("COUNT")) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 非COUNT聚合函数的参数不支持DISTINCT"); + throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 闈濩OUNT鑱氬悎鍑芥暟鐨勫弬鏁颁笉鏀寔DISTINCT"); } String fieldName = paramNode.toExpression(); if(fieldName == null) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanExp, COUNT(DISTINCT)的参数格式错误"); + throw new RQException(mm.getMessage("syntax.error") + ":scanExp, COUNT(DISTINCT)鐨勫弬鏁版牸寮忛敊璇"); } functionName = "icount"; @@ -4476,7 +4477,7 @@ else if(isCountIf && tempList.size() > 0) else { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 某聚合函数的参数个数错误"); + throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 鏌愯仛鍚堝嚱鏁扮殑鍙傛暟涓暟閿欒"); } } } @@ -4490,7 +4491,7 @@ else if(isCountIf && tempList.size() > 0) if (size == 0) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("function.paramError") + ":scanExp, 聚合函数的参数节点数不能为零"); + throw new RQException(mm.getMessage("function.paramError") + ":scanExp, 鑱氬悎鍑芥暟鐨勫弬鏁拌妭鐐规暟涓嶈兘涓洪浂"); } expList.add(new GatherNode(functionName, paramNode)); @@ -4591,7 +4592,7 @@ else if (tokens[pos].getType() == Tokenizer.KEYWORD)//F asc/desc, F order by else { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 字段名后接了非法的字符"); + throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 瀛楁鍚嶅悗鎺ヤ簡闈炴硶鐨勫瓧绗"); } } else if (type == Tokenizer.LPAREN) @@ -4642,7 +4643,7 @@ else if (type == Tokenizer.LPAREN) String uuid = UUID.randomUUID().toString().replace("-", "_"); ArrayList list = new ArrayList(); - list.add(new NormalNode("$" + uuid)); //非join传入的子查询字段因为是后添加的不算作选出字段 + list.add(new NormalNode("$" + uuid)); //闈瀓oin浼犲叆鐨勫瓙鏌ヨ瀛楁鍥犱负鏄悗娣诲姞鐨勪笉绠椾綔閫夊嚭瀛楁 ExpressionNode expNode = new ExpressionNode(list); expList.add(expNode); @@ -4657,7 +4658,7 @@ else if (type == Tokenizer.LPAREN) String dollar_uuid = this.subQueryOfInMap.get(checkList.toString()); ArrayList list = new ArrayList(); - list.add(new NormalNode(dollar_uuid));//非join传入的子查询字段因为是后添加的不算作选出字段 + list.add(new NormalNode(dollar_uuid));//闈瀓oin浼犲叆鐨勫瓙鏌ヨ瀛楁鍥犱负鏄悗娣诲姞鐨勪笉绠椾綔閫夊嚭瀛楁 ExpressionNode expNode = new ExpressionNode(list); expList.add(expNode); } @@ -4669,7 +4670,7 @@ else if (type == Tokenizer.LPAREN) String uuid = UUID.randomUUID().toString().replace("-", "_"); ArrayList list = new ArrayList(); - list.add(new NormalNode("$" + uuid));//非join传入的子查询字段因为是后添加的不算作选出字段 + list.add(new NormalNode("$" + uuid));//闈瀓oin浼犲叆鐨勫瓙鏌ヨ瀛楁鍥犱负鏄悗娣诲姞鐨勪笉绠椾綔閫夊嚭瀛楁 ExpressionNode expNode = new ExpressionNode(list); expList.add(expNode); @@ -4684,7 +4685,7 @@ else if (type == Tokenizer.LPAREN) String dollar_uuid = this.subQueryOfWhereMap.get(checkList.toString()); ArrayList list = new ArrayList(); - list.add(new NormalNode(dollar_uuid));//非join传入的子查询字段因为是后添加的不算作选出字段 + list.add(new NormalNode(dollar_uuid));//闈瀓oin浼犲叆鐨勫瓙鏌ヨ瀛楁鍥犱负鏄悗娣诲姞鐨勪笉绠椾綔閫夊嚭瀛楁 ExpressionNode expNode = new ExpressionNode(list); expList.add(expNode); } @@ -4703,13 +4704,13 @@ else if (type == Tokenizer.LPAREN) else { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 返回常数值的子查询只能为单列"); + throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 杩斿洖甯告暟鍊肩殑瀛愭煡璇㈠彧鑳戒负鍗曞垪"); } } } else { - expList.add(new ParenNode(scanExp(subQueryTokens, 0, subQueryTokens.length)));//实际上不是子查询 + expList.add(new ParenNode(scanExp(subQueryTokens, 0, subQueryTokens.length)));//瀹為檯涓婁笉鏄瓙鏌ヨ } i = end; @@ -4745,7 +4746,7 @@ else if (token.isKeyWord("IN")) if (pos == next || tokens[pos].getType() != Tokenizer.LPAREN && tokens[pos].getType() != Tokenizer.IDENT) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanExp, IN子句从句的格式错误"); + throw new RQException(mm.getMessage("syntax.error") + ":scanExp, IN瀛愬彞浠庡彞鐨勬牸寮忛敊璇"); } ArrayList tempList = new ArrayList(); @@ -4768,7 +4769,7 @@ else if (token.isKeyWord("IN")) if(tokens[pos].getType() == Tokenizer.LPAREN) { int end = Tokenizer.scanParen(tokens, pos, next); - ExpressionNode paramNode = scanExp(tokens, pos, end + 1);//必须包含左右括号以进入子查询解析 + ExpressionNode paramNode = scanExp(tokens, pos, end + 1);//蹇呴』鍖呭惈宸﹀彸鎷彿浠ヨ繘鍏ュ瓙鏌ヨ瑙f瀽 expList.add(new InNode(expNode, paramNode, hasNot)); i = end; } @@ -4781,7 +4782,7 @@ else if(tokens[pos].getType() == Tokenizer.IDENT) { theFieldName = theFieldName.substring(1, theFieldName.length() - 1); } - paramList.add(new FieldNode(theFieldName));//join传入的子查询字段因为已经存在所以算作选出字段 + paramList.add(new FieldNode(theFieldName));//join浼犲叆鐨勫瓙鏌ヨ瀛楁鍥犱负宸茬粡瀛樺湪鎵浠ョ畻浣滈夊嚭瀛楁 ExpressionNode paramNode = new ExpressionNode(paramList); expList.add(new InNode(expNode, paramNode, hasNot)); i = pos; @@ -4798,7 +4799,7 @@ else if (token.isKeyWord("LIKE")) if (pos == next) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanExp, Like子句的格式错误"); + throw new RQException(mm.getMessage("syntax.error") + ":scanExp, Like瀛愬彞鐨勬牸寮忛敊璇"); } else { @@ -4808,12 +4809,12 @@ else if (token.isKeyWord("LIKE")) // || tokens[pos].getString().substring(1, tokens[pos].getString().length()-1).indexOf("\"") != -1) // { // MessageManager mm = ParseMessage.get(); -// throw new RQException(mm.getMessage("syntax.error") + ":scanExp, Like子句的套式类型错误"); +// throw new RQException(mm.getMessage("syntax.error") + ":scanExp, Like瀛愬彞鐨勫寮忕被鍨嬮敊璇"); // } // } } -// String pattern = tokens[pos].getString().substring(1, tokens[pos].getString().length() - 1);//脱""或''以便于操作,最后再加上 +// String pattern = tokens[pos].getString().substring(1, tokens[pos].getString().length() - 1);//鑴""鎴''浠ヤ究浜庢搷浣,鏈鍚庡啀鍔犱笂 ArrayList tempList = new ArrayList(); for(int x = expList.size() - 1; x >= 0; x--) @@ -4855,7 +4856,7 @@ else if (token.isKeyWord("CASE")) int whenPos = Tokenizer.scanCaseWhen(tokens, pos, elsePos == -1 ? endPos : elsePos); if(whenPos == -1) { - throw new RQException("CASE语句缺少WHEN关键字"); + throw new RQException("CASE璇彞缂哄皯WHEN鍏抽敭瀛"); } ExpressionNode caseNode = scanExp(tokens, pos, whenPos); nodeList.add(caseNode); @@ -4931,7 +4932,7 @@ else if (token.isKeyWord("BETWEEN")) if(andPos == -1) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanExp, Between后面缺少关键字and"); + throw new RQException(mm.getMessage("syntax.error") + ":scanExp, Between鍚庨潰缂哄皯鍏抽敭瀛梐nd"); } ExpressionNode floorValue = scanExp(tokens, i + 1, andPos); @@ -4962,7 +4963,7 @@ else if (token.isKeyWord("EXISTS")) if (pos + 1 >= next || tokens[pos].getType() != Tokenizer.LPAREN || !tokens[pos + 1].isKeyWord("SELECT")) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanExp, Exists子句从句的格式错误"); + throw new RQException(mm.getMessage("syntax.error") + ":scanExp, Exists瀛愬彞浠庡彞鐨勬牸寮忛敊璇"); } int end = Tokenizer.scanParen(tokens, pos, next); @@ -5094,7 +5095,7 @@ else if (type == Tokenizer.PARAMMARK) else { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 参数占位符解析错误"); + throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 鍙傛暟鍗犱綅绗﹁В鏋愰敊璇"); } expList.add(paramNode); } @@ -5108,7 +5109,7 @@ else if (type == Tokenizer.PARAMMARK) if (i == start) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 表达式不能以'='号开头"); + throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 琛ㄨ揪寮忎笉鑳戒互'='鍙峰紑澶"); } else if(tokens[i-1].getType() != Tokenizer.OPERATOR) { @@ -5127,7 +5128,7 @@ else if(value.equalsIgnoreCase(">")) if (i + 1 == next) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 表达式不能以'>'号结尾"); + throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 琛ㄨ揪寮忎笉鑳戒互'>'鍙风粨灏"); } else if(tokens[i + 1].getType() == Tokenizer.OPERATOR) { @@ -5142,7 +5143,7 @@ else if(tokens[i + 1].getType() == Tokenizer.OPERATOR) else { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 某表达式中使用了不支持的操作符"); + throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 鏌愯〃杈惧紡涓娇鐢ㄤ簡涓嶆敮鎸佺殑鎿嶄綔绗"); } } else @@ -5158,7 +5159,7 @@ else if(value.equalsIgnoreCase("<")) if (i + 1 == next) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 表达式不能以'<'号结尾"); + throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 琛ㄨ揪寮忎笉鑳戒互'<'鍙风粨灏"); } else if(tokens[i + 1].getType() == Tokenizer.OPERATOR) { @@ -5186,7 +5187,7 @@ else if(tokens[i + 1].getString().equalsIgnoreCase(">") && (i + 1 < next)) else { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 某表达式中使用了不支持的操作符"); + throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 鏌愯〃杈惧紡涓娇鐢ㄤ簡涓嶆敮鎸佺殑鎿嶄綔绗"); } } else @@ -5202,7 +5203,7 @@ else if(value.equalsIgnoreCase("!")) if (i + 1 == next) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 表达式不能以'!'号结尾"); + throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 琛ㄨ揪寮忎笉鑳戒互'!'鍙风粨灏"); } else if(tokens[i + 1].getType() == Tokenizer.OPERATOR) { @@ -5217,13 +5218,13 @@ else if(tokens[i + 1].getType() == Tokenizer.OPERATOR) else { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 某表达式中使用了不支持的操作符"); + throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 鏌愯〃杈惧紡涓娇鐢ㄤ簡涓嶆敮鎸佺殑鎿嶄綔绗"); } } else { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 表达式中'!'不能单独使用"); + throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 琛ㄨ揪寮忎腑'!'涓嶈兘鍗曠嫭浣跨敤"); } } @@ -5252,7 +5253,7 @@ else if(value.equalsIgnoreCase("IS")) if (i + 1 == next) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanExp, Is关键字用法错误"); + throw new RQException(mm.getMessage("syntax.error") + ":scanExp, Is鍏抽敭瀛楃敤娉曢敊璇"); } else if(tokens[i + 1].getType() == Tokenizer.KEYWORD) { @@ -5261,7 +5262,7 @@ else if(tokens[i + 1].getType() == Tokenizer.KEYWORD) if (i + 2 == next) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanExp, Is Not关键字用法错误"); + throw new RQException(mm.getMessage("syntax.error") + ":scanExp, Is Not鍏抽敭瀛楃敤娉曢敊璇"); } if(tokens[i + 2].getType() == Tokenizer.KEYWORD) @@ -5273,15 +5274,15 @@ else if(tokens[i + 1].getType() == Tokenizer.KEYWORD) else { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanExp, Is Not关键字只能后接null"); + throw new RQException(mm.getMessage("syntax.error") + ":scanExp, Is Not鍏抽敭瀛楀彧鑳藉悗鎺ull"); } } else { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanExp, Is Not关键字只能后接null"); + throw new RQException(mm.getMessage("syntax.error") + ":scanExp, Is Not鍏抽敭瀛楀彧鑳藉悗鎺ull"); } - i = i + 1; //跳过not防止影响后面的条件 + i = i + 1; //璺宠繃not闃叉褰卞搷鍚庨潰鐨勬潯浠 } else if(tokens[i + 1].getString().equalsIgnoreCase("NULL")) { @@ -5290,13 +5291,13 @@ else if(tokens[i + 1].getString().equalsIgnoreCase("NULL")) else { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanExp, Is关键字只能后接null"); + throw new RQException(mm.getMessage("syntax.error") + ":scanExp, Is鍏抽敭瀛楀彧鑳藉悗鎺ull"); } } else { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanExp, Is关键字用法错误"); + throw new RQException(mm.getMessage("syntax.error") + ":scanExp, Is鍏抽敭瀛楃敤娉曢敊璇"); } } else if(value.equalsIgnoreCase("NULL")) @@ -5319,7 +5320,7 @@ else if(value.equalsIgnoreCase("DESC")) else { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 不支持的关键字用法:" + value); + throw new RQException(mm.getMessage("syntax.error") + ":scanExp, 涓嶆敮鎸佺殑鍏抽敭瀛楃敤娉:" + value); } } else if(token.getType() == Tokenizer.STRING) @@ -5350,7 +5351,7 @@ private void scanBy(Token []tokens, int start, int next) if (start == next) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanBy, 起始位置超出结束位置"); + throw new RQException(mm.getMessage("syntax.error") + ":scanBy, 璧峰浣嶇疆瓒呭嚭缁撴潫浣嶇疆"); } int end = Tokenizer.scanComma(tokens, start, next); @@ -5366,7 +5367,7 @@ private void scanBy(Token []tokens, int start, int next) if(expNode.getNodeList() == null || expNode.getNodeList().size() == 0) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanBy, 分组项不能为空值"); + throw new RQException(mm.getMessage("syntax.error") + ":scanBy, 鍒嗙粍椤逛笉鑳戒负绌哄"); } Node node = null; if(expNode.getNodeList().size() == 1) @@ -5387,21 +5388,21 @@ private void scanBy(Token []tokens, int start, int next) if(node == null) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanBy, 分组项的类型不对"); + throw new RQException(mm.getMessage("syntax.error") + ":scanBy, 鍒嗙粍椤圭殑绫诲瀷涓嶅"); } this.groupList.add(node); } else //not support 'AT' { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanBy, 不支持At语句"); + throw new RQException(mm.getMessage("syntax.error") + ":scanBy, 涓嶆敮鎸丄t璇彞"); } start = end; } if(this.groupList == null || this.groupList.size() == 0) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanBy, 没有搜索到任何分组列"); + throw new RQException(mm.getMessage("syntax.error") + ":scanBy, 娌℃湁鎼滅储鍒颁换浣曞垎缁勫垪"); } } @@ -5411,7 +5412,7 @@ private void scanOrders(Token []tokens, int start, int next) if (start == next || !tokens[start].isKeyWord("BY")) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanOrders, Order子句格式错误"); + throw new RQException(mm.getMessage("syntax.error") + ":scanOrders, Order瀛愬彞鏍煎紡閿欒"); } while (start < next) @@ -5420,7 +5421,7 @@ private void scanOrders(Token []tokens, int start, int next) if (start == next) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanOrders, 起始位置超出结束位置"); + throw new RQException(mm.getMessage("syntax.error") + ":scanOrders, 璧峰浣嶇疆瓒呭嚭缁撴潫浣嶇疆"); } int end = Tokenizer.scanComma(tokens, start, next); @@ -5459,7 +5460,7 @@ private void scanOrders(Token []tokens, int start, int next) if(node == null) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanOrders, 排序项的类型不对"); + throw new RQException(mm.getMessage("syntax.error") + ":scanOrders, 鎺掑簭椤圭殑绫诲瀷涓嶅"); } if(desc) @@ -5478,7 +5479,7 @@ private void scanOrders(Token []tokens, int start, int next) if (this.sortList == null || this.sortList.size() == 0) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":scanOrders, 排序字段不能为空值"); + throw new RQException(mm.getMessage("syntax.error") + ":scanOrders, 鎺掑簭瀛楁涓嶈兘涓虹┖鍊"); } } @@ -5510,13 +5511,13 @@ private void execute() if(colNo <= 0 || colNo > this.columnList.size()) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":execute, 分组项取的列号不对"); + throw new RQException(mm.getMessage("syntax.error") + ":execute, 鍒嗙粍椤瑰彇鐨勫垪鍙蜂笉瀵"); } } catch(NumberFormatException ex) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":execute, 分组项的类型不对", ex); + throw new RQException(mm.getMessage("syntax.error") + ":execute, 鍒嗙粍椤圭殑绫诲瀷涓嶅", ex); } grpNode = this.columnList.get(colNo - 1); } @@ -5776,7 +5777,7 @@ else if(cur != null) || ((BaseRecord)tab.get(1)).getFieldCount() != 1 || !(((BaseRecord)tab.get(1)).getFieldValue(0) instanceof Sequence)) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":execute, top优化结果异常"); + throw new RQException(mm.getMessage("syntax.error") + ":execute, top浼樺寲缁撴灉寮傚父"); } Table res = null; @@ -5788,7 +5789,7 @@ else if(cur != null) if(!(obj instanceof BaseRecord)) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":execute, top优化结果异常"); + throw new RQException(mm.getMessage("syntax.error") + ":execute, top浼樺寲缁撴灉寮傚父"); } BaseRecord rec = (BaseRecord)obj; @@ -5844,7 +5845,7 @@ else if(cur != null) if(expNode.hasFieldNotGroup()) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":execute, 同一表达式中不能同时出现非分组字段和聚合函数"); + throw new RQException(mm.getMessage("syntax.error") + ":execute, 鍚屼竴琛ㄨ揪寮忎腑涓嶈兘鍚屾椂鍑虹幇闈炲垎缁勫瓧娈靛拰鑱氬悎鍑芥暟"); } gatherSign = true; expNode.collect(); @@ -5860,7 +5861,7 @@ else if(expNode.hasFieldNotGroup()) if(gatherSign && fieldNotGroupSign) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":execute, 待查询字段中不能同时出现非分组字段和聚合函数"); + throw new RQException(mm.getMessage("syntax.error") + ":execute, 寰呮煡璇㈠瓧娈典腑涓嶈兘鍚屾椂鍑虹幇闈炲垎缁勫瓧娈靛拰鑱氬悎鍑芥暟"); } if(gatherSign || this.groupList != null && this.groupList.size() != 0) @@ -6081,12 +6082,12 @@ else if(expNode.hasFieldNotGroup()) if(this.topNumber >= 0 && this.limitNumber >= 0) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":execute, Top关键字与Limit关键字不能同时使用"); + throw new RQException(mm.getMessage("syntax.error") + ":execute, Top鍏抽敭瀛椾笌Limit鍏抽敭瀛椾笉鑳藉悓鏃朵娇鐢"); } else if(this.topNumber >= 0 && this.offsetNumber >= 0) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":execute, Top关键字与Offset关键字不能同时使用"); + throw new RQException(mm.getMessage("syntax.error") + ":execute, Top鍏抽敭瀛椾笌Offset鍏抽敭瀛椾笉鑳藉悓鏃朵娇鐢"); } limit = this.topNumber >= 0 ? this.topNumber : this.limitNumber; @@ -6117,14 +6118,14 @@ else if(this.topNumber >= 0 && this.offsetNumber >= 0) if(colNo <= 0 || colNo > this.columnList.size()) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":execute, 排序项取的列号不对"); + throw new RQException(mm.getMessage("syntax.error") + ":execute, 鎺掑簭椤瑰彇鐨勫垪鍙蜂笉瀵"); } ordExp = "#" + colNo; } catch(NumberFormatException ex) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":execute, 排序项的类型不对", ex); + throw new RQException(mm.getMessage("syntax.error") + ":execute, 鎺掑簭椤圭殑绫诲瀷涓嶅", ex); } } else @@ -6282,12 +6283,12 @@ else if(cur != null) if(this.topNumber >= 0 && this.limitNumber >= 0) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":execute, Top关键字与Limit关键字不能同时使用"); + throw new RQException(mm.getMessage("syntax.error") + ":execute, Top鍏抽敭瀛椾笌Limit鍏抽敭瀛椾笉鑳藉悓鏃朵娇鐢"); } else if(this.topNumber >= 0 && this.offsetNumber >= 0) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":execute, Top关键字与Offset关键字不能同时使用"); + throw new RQException(mm.getMessage("syntax.error") + ":execute, Top鍏抽敭瀛椾笌Offset鍏抽敭瀛椾笉鑳藉悓鏃朵娇鐢"); } limit = this.topNumber >= 0 ? this.topNumber : this.limitNumber; offset = this.offsetNumber > 0 ? this.offsetNumber : 0; @@ -6316,14 +6317,14 @@ else if(this.topNumber >= 0 && this.offsetNumber >= 0) if(colNo <= 0 || colNo > this.columnList.size()) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":execute, 排序项取的列号不对"); + throw new RQException(mm.getMessage("syntax.error") + ":execute, 鎺掑簭椤瑰彇鐨勫垪鍙蜂笉瀵"); } ordExp = "#" + colNo; } catch(NumberFormatException ex) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":execute, 排序项的类型不对", ex); + throw new RQException(mm.getMessage("syntax.error") + ":execute, 鎺掑簭椤圭殑绫诲瀷涓嶅", ex); } } else @@ -6409,12 +6410,12 @@ else if(this.topNumber >= 0 && this.offsetNumber >= 0) if(this.topNumber >= 0 && this.limitNumber >= 0) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":execute, Top关键字与Limit关键字不能同时使用"); + throw new RQException(mm.getMessage("syntax.error") + ":execute, Top鍏抽敭瀛椾笌Limit鍏抽敭瀛椾笉鑳藉悓鏃朵娇鐢"); } else if(this.topNumber >= 0 && this.offsetNumber >= 0) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":execute, Top关键字与Offset关键字不能同时使用"); + throw new RQException(mm.getMessage("syntax.error") + ":execute, Top鍏抽敭瀛椾笌Offset鍏抽敭瀛椾笉鑳藉悓鏃朵娇鐢"); } limit = this.topNumber >= 0 ? this.topNumber : this.limitNumber; offset = this.offsetNumber > 0 ? this.offsetNumber : 0; @@ -6444,14 +6445,14 @@ else if(this.topNumber >= 0 && this.offsetNumber >= 0) if(colNo <= 0 || colNo > this.columnList.size()) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":execute, 排序项取的列号不对"); + throw new RQException(mm.getMessage("syntax.error") + ":execute, 鎺掑簭椤瑰彇鐨勫垪鍙蜂笉瀵"); } ordExp = "#" + colNo; } catch(NumberFormatException ex) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":execute, 排序项的类型不对", ex); + throw new RQException(mm.getMessage("syntax.error") + ":execute, 鎺掑簭椤圭殑绫诲瀷涓嶅", ex); } } else @@ -6548,12 +6549,12 @@ else if(this.topNumber >= 0 && this.offsetNumber >= 0) if(this.topNumber >= 0 && this.limitNumber >= 0) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":execute, Top关键字与Limit关键字不能同时使用"); + throw new RQException(mm.getMessage("syntax.error") + ":execute, Top鍏抽敭瀛椾笌Limit鍏抽敭瀛椾笉鑳藉悓鏃朵娇鐢"); } else if(this.topNumber >= 0 && this.offsetNumber >= 0) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":execute, Top关键字与Offset关键字不能同时使用"); + throw new RQException(mm.getMessage("syntax.error") + ":execute, Top鍏抽敭瀛椾笌Offset鍏抽敭瀛椾笉鑳藉悓鏃朵娇鐢"); } else if(this.topNumber >= 0) { @@ -6640,13 +6641,13 @@ private String[] getParams(String expression) } else { - throw new RQException("函数参数不能为空"); + throw new RQException("鍑芥暟鍙傛暟涓嶈兘涓虹┖"); } start = comma + 1; if(start >= next) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("function.paramError") + ":getParams, 参数格式有误"); + throw new RQException(mm.getMessage("function.paramError") + ":getParams, 鍙傛暟鏍煎紡鏈夎"); } } } @@ -6666,7 +6667,7 @@ private Token[] optimizeWhere(Token[] whereTokens, List paramList) else if(topFilter != null) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":optimizeWhere, WHERE子句被重复分析"); + throw new RQException(mm.getMessage("syntax.error") + ":optimizeWhere, WHERE瀛愬彞琚噸澶嶅垎鏋"); } return pw.getTokens(true); } @@ -6708,7 +6709,7 @@ else if(value instanceof Date) else { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("function.paramError") + ":getSQLValue, 不支持的数据类型"); + throw new RQException(mm.getMessage("function.paramError") + ":getSQLValue, 涓嶆敮鎸佺殑鏁版嵁绫诲瀷"); } } @@ -6749,7 +6750,7 @@ else if(param instanceof Date) else { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("function.paramError") + ":getProcValue, 不支持的数据类型"); + throw new RQException(mm.getMessage("function.paramError") + ":getProcValue, 涓嶆敮鎸佺殑鏁版嵁绫诲瀷"); } } @@ -6763,7 +6764,7 @@ private ICursor fillSubQueryField(ICellSet ics, ICursor icur, List= 0 && wherePos < fromPos) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":fillSubQueryField, WHERE关键字的位置不正确"); + throw new RQException(mm.getMessage("syntax.error") + ":fillSubQueryField, WHERE鍏抽敭瀛楃殑浣嶇疆涓嶆纭"); } if(wherePos < 0) { @@ -6804,35 +6805,35 @@ private ICursor fillSubQueryField(ICellSet ics, ICursor icur, List= 0 && groupPos < wherePos) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":fillSubQueryField, GROUP关键字的位置不正确"); + throw new RQException(mm.getMessage("syntax.error") + ":fillSubQueryField, GROUP鍏抽敭瀛楃殑浣嶇疆涓嶆纭"); } minPos = pos(groupPos, minPos); int havingPos = Tokenizer.scanKeyWord("HAVING", subQueryTokens, 0, subQueryTokens.length); if(havingPos >= 0 && havingPos < groupPos) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":fillSubQueryField, HAVING关键字的位置不正确"); + throw new RQException(mm.getMessage("syntax.error") + ":fillSubQueryField, HAVING鍏抽敭瀛楃殑浣嶇疆涓嶆纭"); } minPos = pos(havingPos, minPos); int orderPos = Tokenizer.scanKeyWord("ORDER", subQueryTokens, 0, subQueryTokens.length); if(orderPos >= 0 && orderPos < minPos) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":fillSubQueryField, ORDER关键字的位置不正确"); + throw new RQException(mm.getMessage("syntax.error") + ":fillSubQueryField, ORDER鍏抽敭瀛楃殑浣嶇疆涓嶆纭"); } minPos = pos(orderPos , minPos); int limitPos = Tokenizer.scanKeyWord("LIMIT", subQueryTokens, 0, subQueryTokens.length); if(limitPos >= 0 && limitPos < minPos) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":fillSubQueryField, LIMIT关键字的位置不正确"); + throw new RQException(mm.getMessage("syntax.error") + ":fillSubQueryField, LIMIT鍏抽敭瀛楃殑浣嶇疆涓嶆纭"); } minPos = pos(limitPos , minPos); int offsetPos = Tokenizer.scanKeyWord("OFFSET", subQueryTokens, 0, subQueryTokens.length); if(offsetPos >= 0 && offsetPos < minPos) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":fillSubQueryField, OFFSET关键字的位置不正确"); + throw new RQException(mm.getMessage("syntax.error") + ":fillSubQueryField, OFFSET鍏抽敭瀛楃殑浣嶇疆涓嶆纭"); } int byStart = pos(groupPos, wherePos, fromPos); int byEnd = pos(havingPos, orderPos, limitPos, offsetPos, subQueryTokens.length); @@ -6840,12 +6841,12 @@ private ICursor fillSubQueryField(ICellSet ics, ICursor icur, List 0) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":fillSubQueryField, 关键字GROUP后面缺少关键字BY"); + throw new RQException(mm.getMessage("syntax.error") + ":fillSubQueryField, 鍏抽敭瀛桮ROUP鍚庨潰缂哄皯鍏抽敭瀛桞Y"); } else if(havingPos > 0 && byPos > havingPos) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":fillSubQueryField, 分组关键字BY位置应该在HAVING之前"); + throw new RQException(mm.getMessage("syntax.error") + ":fillSubQueryField, 鍒嗙粍鍏抽敭瀛桞Y浣嶇疆搴旇鍦℉AVING涔嬪墠"); } int whereEnd = pos(groupPos, byPos, havingPos, orderPos, limitPos, offsetPos, subQueryTokens.length); @@ -6853,28 +6854,28 @@ else if(havingPos > 0 && byPos > havingPos) if(intoPos >= fromPos) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":fillSubQueryField, INTO关键字的位置不正确"); + throw new RQException(mm.getMessage("syntax.error") + ":fillSubQueryField, INTO鍏抽敭瀛楃殑浣嶇疆涓嶆纭"); } int columnEnd = pos(intoPos, fromPos); int selectPos = Tokenizer.scanKeyWord("SELECT", subQueryTokens, 0, subQueryTokens.length); if(selectPos < 0) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":fillSubQueryField, SELECT关键字缺失"); + throw new RQException(mm.getMessage("syntax.error") + ":fillSubQueryField, SELECT鍏抽敭瀛楃己澶"); } int columnStart = selectPos; int distinctPos = Tokenizer.scanKeyWord("DISTINCT", subQueryTokens, 0, subQueryTokens.length); if(distinctPos >= 0 && distinctPos < selectPos) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":fillSubQueryField, DISTINCT关键字的位置不正确"); + throw new RQException(mm.getMessage("syntax.error") + ":fillSubQueryField, DISTINCT鍏抽敭瀛楃殑浣嶇疆涓嶆纭"); } columnStart = pos(distinctPos, columnStart); int topPos = Tokenizer.scanKeyWord("TOP", subQueryTokens, 0, subQueryTokens.length); if(topPos >= 0 && topPos < columnStart) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":fillSubQueryField, TOP关键字的位置不正确"); + throw new RQException(mm.getMessage("syntax.error") + ":fillSubQueryField, TOP鍏抽敭瀛楃殑浣嶇疆涓嶆纭"); } columnStart = pos(topPos, columnStart); if(columnStart == topPos) @@ -6906,7 +6907,7 @@ else if(havingPos > 0 && byPos > havingPos) if(Tokenizer.scanComma(columnTokens, 0, columnTokens.length) != -1) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error") + ":fillSubQueryField, 子查询中SELECT字段必须单列"); + throw new RQException(mm.getMessage("syntax.error") + ":fillSubQueryField, 瀛愭煡璇腑SELECT瀛楁蹇呴』鍗曞垪"); } if(columnTokens[columnTokens.length - 1].getSpaces().isEmpty()) { @@ -7007,15 +7008,15 @@ else if(type == SubQueryCursor.Exist_Type) if(fltExps.length != 2) { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error")+":fillSubQueryField, 等值布尔表达式语法错误"); + throw new RQException(mm.getMessage("syntax.error")+":fillSubQueryField, 绛夊煎竷灏旇〃杈惧紡璇硶閿欒"); } - if(outerFieldSet.contains(fltExps[0].trim().toLowerCase())) //外部字段 + if(outerFieldSet.contains(fltExps[0].trim().toLowerCase())) //澶栭儴瀛楁 { String numberCode = ExpressionTranslator.translateExp(fltExps[0].trim().toLowerCase(), fn2cnMap); outerExpsList.add(new Expression(numberCode)); } - else if(innerFieldSet.contains(fltExps[0].trim().toLowerCase())) //内部字段 + else if(innerFieldSet.contains(fltExps[0].trim().toLowerCase())) //鍐呴儴瀛楁 { String numberCode = ExpressionTranslator.translateExp(fltExps[0].trim().toLowerCase(), fn2cnMap); innerExpsList.add(new Expression(numberCode)); @@ -7023,15 +7024,15 @@ else if(type == SubQueryCursor.Exist_Type) else { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error")+":fillSubQueryField, 未知的字段"); + throw new RQException(mm.getMessage("syntax.error")+":fillSubQueryField, 鏈煡鐨勫瓧娈"); } - if(outerFieldSet.contains(fltExps[1].trim().toLowerCase())) //外部字段 + if(outerFieldSet.contains(fltExps[1].trim().toLowerCase())) //澶栭儴瀛楁 { String numberCode = ExpressionTranslator.translateExp(fltExps[1].trim().toLowerCase(), fn2cnMap); outerExpsList.add(new Expression(numberCode)); } - else if(innerFieldSet.contains(fltExps[1].trim().toLowerCase())) //内部字段 + else if(innerFieldSet.contains(fltExps[1].trim().toLowerCase())) //鍐呴儴瀛楁 { String numberCode = ExpressionTranslator.translateExp(fltExps[1].trim().toLowerCase(), fn2cnMap); innerExpsList.add(new Expression(numberCode)); @@ -7039,7 +7040,7 @@ else if(type == SubQueryCursor.Exist_Type) else { MessageManager mm = ParseMessage.get(); - throw new RQException(mm.getMessage("syntax.error")+":fillSubQueryField, 未知的字段"); + throw new RQException(mm.getMessage("syntax.error")+":fillSubQueryField, 鏈煡鐨勫瓧娈"); } } @@ -7137,4 +7138,4 @@ void setTopFilter(String topFilter) { this.topFilter = topFilter; } -} \ No newline at end of file +}