private void init() { //Dtv.Set(" _ " , "AP``¹``>¹²``, ²``"); //Dtv.Set(" & " , "CC``¹``>´°(¹´, ²´)````"); //Dtv.Set(" >$ " , "CS``¹``>(´¹ ²)´`` ° ²``"); //Dtv.Set(" && " , "AN``¹``>(´¹ ²)´`` ° ²````"); //Dtv.Set(" || " , "OR``¹``>(´¹ ²)´`` ° ²``"); //Dtv.Set(" ^^ " , "XR``¹``>(´¹ ²)´`` ° ²``"); //Dtv.Set(" °° " , "XS``¹``>(´¹ ²)´`` ° ²``"); //Dtv.Set(" !°° ", "NX``¹``>(´¹ ²)´`` ° ²``"); //Dtv.Set(" == " , "IS``¹``>(´¹ ²)´`` ° ²``"); //Dtv.Set(" !== ", "NS``¹``>(´¹ ²)´`` ° ²``"); //Dtv.Set(" = " , "EQ``¹``>(´¹ ²)´`` ° ²``"); //Dtv.Set(" != " , "NE``¹``>(´¹ ²)´`` ° ²``"); //Dtv.Set(" > " , "GT``¹``>(´¹ ²)´`` ° ²``"); //Dtv.Set(" < " , "LT``¹``>(´¹ ²)´`` ° ²``"); //Dtv.Set(" >= " , "GE``¹``>(´¹ ²)´`` ° ²``"); //Dtv.Set(" <= " , "LE``¹``>(´¹ ²)´`` ° ²``"); //Dtv.Set(" ~ " , "LK``¹``>(´¹ ²)´`` ° ²``"); //Dtv.Set(" !~ " , "NL``¹``>(´¹ ²)´`` ° ²``"); //Dtv.Set(" ° " , "IN``¹``>(´¹ ²)´`` ° ²``"); //Dtv.Set(" !° " , "NI``¹``>(´¹ ²)´`` ° ²``"); //Dtv.Set(" ≡ " , "MV``¹``>(´¹ ²)´`` ° ²``"); //Dtv.Set(" !≡ " , "NV``¹``>(´¹ ²)´`` ° ²``"); //Dtv.Set(" ≡> " , "MU``¹``>(´¹ ²)´`` ° ²``"); //Dtv.Set(" !≡> ", "NU``¹``>(´¹ ²)´`` ° ²``"); //Dtv.Set(" ≡< " , "ML``¹``>(´¹ ²)´`` ° ²``"); //Dtv.Set(" !≡< ", "NL``¹``>(´¹ ²)´`` ° ²``"); Dtv.Set(" <|> ", "UNION``¹``>(´¹´²)´``) ° (²``"); Dtv.Set(" <&> ", "INTERSECT``¹``>(´¹)´ ° ²``(²)``"); Dtv.Set(" <-> ", "EXCEPT``¹``>(´¹)´ ° ²``(²)``"); if (!selfTested) { selfTest(); } }
} //AttGeTr: must be revised, is sql-Syntax and symbolic Syntax always equal in terms of DbFields or Terms? public virtual Reach sql(EvalExpert evx) { if (evx.Dtv.hasKey(optor)) { return(val(evx)); } if (Dtv.hasKey(optor)) { return(val(this)); } if (optor.Equals("")) { return(val(this)); //(Reach)lOpnd; } Reach ret = ""; Reach retClose = ""; if (lOpnd.GetType() == typeof(Trm)) { ret += ((Trm)lOpnd).sql(evx); } else if (lOpnd.GetType() == typeof(DbField)) { ret += ((DbField)lOpnd).sql(evx); } else if (lOpnd.GetType() == typeof(DbSlc)) { ret += "( " + evx.val(((DbSlc)lOpnd)) + " )"; } else { ret += (Reach)lOpnd; } if (optor.Equals(utl.OPR("APD"))) { ret += ", "; } /* * else if (optor.Equals(utl.OPR("CPF"))) //composite field * { * //return "lTrim(rTrim(" + lOpnd + ")) + ' ' + lTrim(rTrim(" + rOpnd + "))"; * ret = "("; * foreach (object op in this) * { * ret += ((DbField)op).sql(evx) + " + ' ' + "; * //return ret.upto(-10); * retClose = ")"; * } * } */ else if (optor.Equals(utl.OPR("CCT"))) { ret = "CONCAT(" + ret + ", "; retClose = ")"; } else if (optor.Equals(utl.OPR("CVS"))) { ret = "CAST(" + ret + " as text"; retClose = ")"; } if (rOpnd != null) { if (rOpnd.GetType() == typeof(Trm)) { ret += ((Trm)rOpnd).sql(evx); } else if (rOpnd.GetType() == typeof(DbField)) { ret += ((DbField)rOpnd).sql(evx); } else if (rOpnd.GetType() == typeof(DbSlc)) { ret += "( " + evx.val(((DbSlc)rOpnd)) + " )"; } else { ret += (Reach)rOpnd; } } ret += retClose; return(ret); }