• MOQL操作数(Operand) (二)


    常量Operand

            Operand支持的常量类型包括字符串型(String)、双浮点型(Double)、长整型(Long)以及NULL类型。

               字符串Operand的格式与SQL中字符串的格式一致。字符串的两端需要用单引号(‘)包围,如:’String’字符串’123’’123.1’’null’等都表示字符串。当字符串中也需要包含单引号(‘)时,也完全遵从SQL字符串的约束,用两个相连的单引号(‘’)来表示一个字符串中的单引号如:’Str’’ing’其代表的字符串为”Str’ing”

               双浮点Operand可以表示的数据范围与Java语言中的java.lang.Double对象可以表示的数据范围一致。它可以覆盖浮点型(float)数据的数据范围。MOQL中所有浮点数都以双浮点Operand表示,如:123.4-12.7823.3e15等。

              长整型Operand表示的数据范围与Java语言中的java.lang.Long对象所表示的数据范围一致。在MOQLSQL语法支持的byteshortinteger以及long类型都以长整型Operand表示。另外长整型Operand还支持八进制、十进制以及十六进制的数据格式,如:193435L0xAFCD-1235072等。

               NULL类型Operand用来表示null。其只有null这一种表现形式,所有字母必须是纯小写。

               常量Operand的代码示例如下:

    try {

        Operand constant = MoqlUtils.createOperand("1234");

        System.out.println(constant.toString() +" " +  constant.getOperandType());

        constant = MoqlUtils.createOperand("192.16");

        System.out.println(constant.toString() +" " +  constant.getOperandType());

        constant = MoqlUtils.createOperand("'中国''china'");

        System.out.println(constant.toString() +" " +  constant.getOperandType());

        constant = MoqlUtils.createOperand("null");

        System.out.println(constant.toString() +" " +  constant.getOperandType());

        constant = MoqlUtils.createOperand("Null");

        System.out.println(constant.toString() +" " +  constant.getOperandType());

    } catch (MoqlException e) {

        e.printStackTrace();

    }

            其执行结果输出如下:

    1234 CONSTANT

    192.16 CONSTANT

    '中国''china' CONSTANT

    NULL CONSTANT

    Null VARIABLE

    字符串Null未被解析为NULL类型的常量Operand,而是被解析为了变量类型的Operand

    变量Operand

            变量类型Operand的命名规范与Java语法中变量的标示符的命名规范一致。其标示符通常是以大小写英文字母、数字、下划线“_”和美元符号“$”组成,其中数字不能成为标示符的首字母。另外,标示符的命名也支持汉语的文字或其它语言的语言的文字,如: _dataa1$a、长度、num等。

              变量Operand的示例代码如下:

    EntityMap entityMap = new EntityMapImpl();

    entityMap.putEntity("num", 123);

    entityMap.putEntity("长度", 184);

    entityMap.putEntity("$a", 38);

    entityMap.putEntity("_data", 32);

    try {

        Operand variable = MoqlUtils.createOperand("num");

        System.out.println(variable.toString() +" " + variable.getOperandType());

        System.out.println(variable.operate(entityMap));

        variable = MoqlUtils.createOperand("长度");

        System.out.println(variable.toString() +" " + variable.getOperandType());

        System.out.println(variable.operate(entityMap));

        variable = MoqlUtils.createOperand("$a");

        System.out.println(variable.toString() +" " + variable.getOperandType());

        System.out.println(variable.operate(entityMap));

        variable = MoqlUtils.createOperand("_data");

        System.out.println(variable.toString() +" " + variable.getOperandType());

        System.out.println(variable.operate(entityMap));

    } catch (MoqlException e) {

        e.printStackTrace();

    }

            其执行结果输出如下:

    num VARIABLE

    123

    长度 VARIABLE

    184

    $a VARIABLE

    38

    _data VARIABLE

    32

     

    项目地址:http://sourceforge.net/projects/moql/

                          代码路径:svn://svn.code.sf.net/p/moql/code/trunk

  • 相关阅读:
    思考
    创建Windows Mobile上兼容性好的UI 程序
    中文乱码(二)
    中文乱码(三)
    MySQL字符集产生乱码的简单讲解
    MySql乱码解决(五)
    中文乱码(四)
    mysql中文问题全处理
    Linux 中 x86 的内联汇编
    arm下的gcc内联汇编
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3000795.html
Copyright © 2020-2023  润新知