• kbmmw 5.18.0 发布


    5.18.00 Sep 12 2021

    Important notes (changes that may break existing code)
    ======================================================
    * Officially dropped support for pre XE7. XE8 and up is recommended.

    New stuff
    =========
    - Added support for Delphi 11
    - Added new SQL user functions to kbmMWMemSQL:
    CREATEGUID() - Returns a full size unique GUID including braces.
    CREATESHORTGUID() - Returns a compact unique GUID (no braces or dashes).
    GETUSERNAME() - Returns username of currently logged in user.
    GETCOMPUTERNAME() - Returns name of computer.
    QUOTE(string[,quotechar[,endquotechar]]) - Quote a string. Default quotechar/endquotechar is "
    UNQUOTE(string[,quotechar[,endquotechar]]) - Unquote a string. Default quotechar/endquotechar is "
    - Added NAV(property/fieldname) function to SmartBind expressions. Provides access to
    other values of the current position of a navigable bound object.
    - Added HasPassedTimeMS, PassedTimeMS, PassedTimeDiffMS and DiffMS (millisec) functions
    to TkbmMWTiming (kbmMWGlobal.pas) in addition to the US (microsec) variants.
    - Added overridable AllocElements, FreeElements, ZeroElements, ClearElements methods to
    TkbmMWLockFreeHashArray<T> and TkbmMWLockFreeHashArray2<T>, to allow for alternative storage,
    like storing the array in a memory mapped file.

    Changes/minor additions
    =======================
    - Officially dropped support for pre XE7. XE8 and up is recommended.
    - Added logging of exceptions as error, if SmartBind expression excepts.
    - Improved kbmMWYAML to allow for cardinal hex or octal values.

    Fixes
    =====
    - Fixed potential null A/V when rebinding datasources/dataset in SmartBind.
    - Fixed TkbmMWONFormat.DateTimeAsString in kbmMWObjectNotation to fall back to
    detecting a date/time format index if no specific date nor time format is found.


    5.17.00 Aug 28 2021

    Important notes (changes that may break existing code)
    ======================================================
    * Require kbmMemTable v. 7.94 or newer!
    * Changed SmartBind to only set destination if the new value is different from what
    is already in the destination. Old behaviour can be forced by setting property
    yourbinding.AlwaysSet:=true or via 'alwaysSet:true' in expression based binding.
    * Changed SpokeID from integer to Cardinal in kbmMWServerMessagingTransport.pas

    New stuff
    =========
    - Added field mapping support in LINQ via new AsMyDataset which
    returns a new developer owned instance of a dataset.
    - Added new date/time format specifiers to TkbmMWDateTimeCompiledFormat:
    %M3 = 2 digit month
    %D2 = 2 digit day
    %H2 = 2 digit hour
    - Added kbmMWTXT.pas containing TkbmMWTXTStreamer. It will parse and generate
    fixed format record/field based text files accoding to a specific
    JSON or YAML described format.
    Example:
    [
    { "name": "name", "ofs": 15, "len": 80 },
    { "name": "address", "ofs": 95, "len": 40 },
    { "name": "zipcode", "ofs": 135, "len": 8 },
    { "name": "city", "ofs": 143, "len": 32 },
    { "name": "active", "ofs": 194, "type": "boolean", "len": 1, "true":" ", "false":["S","I"], "trim":"false" },
    { "name": "phone", "ofs": 195, "len": 15 },
    { "name": "fax", "ofs": 210, "len": 15 },
    { "name": "value", "ofs": 522, "type": "integer", "len": 4 },
    { "name": "date", "ofs": 538, "type": "date", "dateTimeFormat": "%Y2%M3%D2", "len": 6 },
    { "name": "number", "ofs": 564, "type": "float", "decimalCount": 2, "padChar": "0", "len": 7 },
    { "name": "email", "ofs": 600, "len": 0 }
    ]
    Check ObjectNotation demo and LINQ demo for sample data.
    - Added many new methods to kbmMWLINQ:
    AsMyDataset which will return a developer owned dataset.
    AsMyDataset with various mapping arguments, which will allow
    for returning only specified fields under specified names.
    Syntax: OldFieldName=NewFieldName;....
    AsOn with various mapping arguments for field names. See above.
    UsingTXT which will take a TXT JSON definition in the AFields argument.
    It will parse fixed format text fields using some default settings.
    If more detailed settings are needed, use UsingON and provide
    the result from a TkbmMWTXTStreamer.
    - Updated TkbmMWONFormat in kbmMWObjectNotation.pas to support multiple (max 10) variations
    of text representing boolean false/true, Null, INF+ and INF-
    - Improved TkbmMWStringBuilder with many variations of two new functions:
    Overwrite, Insert, which allows updating existing content, and auto
    size the buffer if the overwrite or insert is outside existing buffer size.

    Changes/minor additions
    =======================
    - Improved datasource binding to fall back to binding to the datasource instance itself
    rather than its records, when the binding member is not a field name.
    - Added OnAttemptAutoBind event to TkbmMWBindings instance. Can be used for
    ignoring specific properties or instances while attempting to autobind.
    - Added anonymous function argument to AutoBind which will allow
    filtering which instances and properties should be autobound.
    - Added overloaded PeerSubscribingFor method to be used instead of providing
    -1 as SpokeID in original PeerSubscribingFor, which now only takes a cardinal.
    - Added overloaded AllSubscriptionsFor method to be used instead of providing
    -1 as SpokeID in original AllSubscriptionsFor, which now only takes a cardinal.
    - Added Trunc to TkbmMWDateTime which returns an integer Delphi style datetime value.
    - Added mwsloExceptOnValueError option to kbmMWSQLite connection pool. If specified, value
    conversion errors will not be silently ignored.
    - Improved Use.AsType<T> to support T being an interface as well as an object/class.

    Fixes
    =====
    - Changed SpokeID from integer to Cardinal in kbmMWServerMessagingTransport.pas
    - Introduced some FPC compiler support changes. It still do not support FPC.
    - Fixed bug premature freeing data in a LinqStage which was marked as shared or not owned.

  • 相关阅读:
    web.xml中listener、 filter、servlet 加载顺序及其详解 从零开始
    网站运营之门外汉并且伪理解
    win7 旗舰版 64位注册dll(regsvr32)失败解决方法
    盖是乱盖,书童逆天之初创互联网企业常见弊病
    VirtualBox中安装Windows10
    jupyter导出pdf文件的方法
    com.ibm.mm.sdk.common.DKUsageError: DGL3616A: 发生意外的 SQL 错误; ICM7015: 在库服务器的 SQL 操作期间,发生意外错误。有关错误的详细信息,请参阅数据库文档。 (STATE) : [LS RC = 7015, SQL RC = 100
    Tomcat编译java文件没有同步问题
    Google APPS申请指南
    如何用C#语言构造蜘蛛程序
  • 原文地址:https://www.cnblogs.com/xalion/p/15268267.html
Copyright © 2020-2023  润新知