FAQ > 新一代客户端升级

2025-08-27:新一代客户端升级说明    

简述
更新日志--------2025-8-27
升级:支持?.模式,即a?.b?.c模式,允许对nil调用返回nil,同时支持?.[]模式,支持对nil进行[],得到nil,TSL的?.以及?.[]的设计与JavaScript类似。2024-9-13日升级pn_calcctrlword()系统参数0x100和0x200也可以起到类似作用,但?.模式更为直观,而设置系统参数模式书写更为简洁。
升级:支持not in,not like,not sqlin,not is。使得对于not (a in b)可以写成a not in b模式。
升级:支持if表达式,if表达式必须存在else,if a>1 then 2 else 1就是一个if表达式,可以用预定义ifexp来判别是否支持。
升级:支持a=class(unit1.class1.class2)模式使用单元类以及子类。使用createobject支持创建子类,findclass支持子类查找。新增预定义parentclassinunit
升级:支持函数的缺省参数值设置为表达式而非限定在常量。
升级:支持读取方式访问UNIT的常量和变量。
兼容:编译去除AVX指令依赖,支持苹果M1-M3 ARM处理器上运行的WINDOWS,这个版本可以支持更早期的INTEL CPU,AVX从E5 V2才开始支持。
兼容:TSJDBC为处理OceanBase v4.2.1.10下getScale可能会错误地返回0,导致抛出异常。为此URL中新增convertZeroScaleToInt参数,默认为false。当该参数为true时,如果getScale返回0,将列数据转换为整数,否则转换为浮点数。
修正:FireDAC API模式EXECSQL对于字符串常量中含有的特殊字符作为宏解析产生的问题。
优化:LINUX openssl 1.1.1f或以上版本直接采用openssl而非gmssl支持sm2/sm4。
  • 2025-8-27 升级说明
    ------------------------------------------------
    升级:支持?.模式,即a?.b?.c模式,允许对nil调用返回nil,同时支持?.[]模式,支持对nil进行[],得到nil,TSL的?.以及?.[]的设计与JavaScript类似。2024-9-13日升级pn_calcctrlword()系统参数0x100和0x200也可以起到类似作用,但?.模式更为直观,而设置系统参数模式书写更为简洁。
    说明:在访问对象、数组子元素时,支持使用?.去访问。当子元素不存在时,不再报错,返回nil值。具体使用方法与详细说明,可查看FAQ:?.模式
    ------------------------------------------------
    升级:支持not in,not like,not sqlin,not is。使得对于not (a in b)可以写成a not in b模式。
    说明:支持在in、like等关键词前加上not,允许直接使用 a not in b 来代替 not (a in b) 的书写方式,以实现和in、like等完全相反的功能。
    ------------------------------------------------
    升级:支持if表达式,if表达式必须存在else,if a>1 then 2 else 1就是一个if表达式,可以用预定义ifexp来判别是否支持。
    说明:支持if表达式,功能与三元表达式类似,但多分支的场景下更简洁。具体使用方法与详细说明,可查看FAQ:IF表达式
    ------------------------------------------------
    升级:支持a=class(unit1.class1.class2)模式使用单元类以及子类。使用createobject支持创建子类,findclass支持子类查找。新增预定义parentclassinunit
    说明:类定义时,支持使用a=class(unit1.class1.class2)模式继承单元中的类及子类。
    ------------------------------------------------
    升级:支持函数的缺省参数值设置为表达式而非限定在常量。
    说明:函数定义缺省参数时,支持使用表达式作为缺省值,如function foo(a,b=1+2*3)。具体使用方法与详细说明,可查看FAQ:缺省参数支持表达式
    ------------------------------------------------
    升级:支持读取方式访问UNIT的常量和变量。
    说明:在引用单元(uses unit1)的情况下,支持使用unit1.a的方式去访问单元中的常量和变量。
    ------------------------------------------------
    兼容:编译去除AVX指令依赖,支持苹果M1-M3 ARM处理器上运行的WINDOWS,这个版本可以支持更早期的INTEL CPU,AVX从E5 V2才开始支持。
    说明:减少对特定指令集的依赖,以确保客户端能在搭载苹果 M1-M3 ARM 处理器的 Windows 系统中稳定运行。
    ------------------------------------------------
    兼容:TSJDBC为处理OceanBase v4.2.1.10下getScale可能会错误地返回0,导致抛出异常。为此URL中新增convertZeroScaleToInt参数,默认为false。当该参数为true时,如果getScale返回0,将列数据转换为整数,否则转换为浮点数。
    说明:修复TSJDBC与OceanBase交互时可能会产生的异常,以提升交互稳定性。
    ------------------------------------------------
    修正:FireDAC API模式EXECSQL对于字符串常量中含有的特殊字符作为宏解析产生的问题。
    说明:修复了FireDAC API模式EXECSQL在处理特殊字符时,可能会导致的BUG。该BUG可能导致 SQL 语句被错误解析,进而执行失败或产生非预期的行为。
    ------------------------------------------------
    优化:LINUX openssl 1.1.1f及以上版本直接采用openssl而非gmssl支持sm2/sm4。
    说明:OpenSSL 从 1.1.1 版本开始,其官方主分支已直接支持国密算法 SM2、SM3 和 SM4,因此无需再依赖 GmSSL 等分支库即可使用这些算法。此次优化仅替换了底层依赖,功能保持不变,不影响正常使用。
    ------------------------------------------------