Exemple #1
0
 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();
     }
 }
Exemple #2
0
        }                                  //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);
        }