Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 11 - 更改和升级 » 10.0.0 版中的新功能 » UltraLite » 新功能

 

编程接口

一般改进
  • 游标更新   UltraLite 应用程序现在支持在处理游标时修改数据库数据的功能。在 SQL Anywhere 数据库中,并非所有查询结果集都允许更新和删除游标。请确保您了解允许和执行更新的各种情况。请参见读取数据

  • 连接字符串已简化   由于 UltraLite 始终会提供缺省的用户 ID DBA 以及口令 sql,因此您现在只需在连接字符串中指定数据库即可进行连接。此外,大多数数据库都可使用 DBF 连接参数进行设置。请参见连接到 UltraLite 数据库

  • 引入了 MLFileTransfer 函数   将此文件传输函数与 MobiLink 文件传输实用程序配合使用可下载文件。要下载的文件可特定于一个 Mobilink 用户名或一个缺省文件。例如,应用程序可选择下载预先配置的空数据库文件,来替换本地数据库(在月初或处理周期开始时)。请参见MobiLink 文件传输实用程序 (mlfiletransfer)

  • 数据库创建   现在,UltraLite 模式是数据库的一部分,而不存在于一个独立的 .usm 文件之中。这意味着,应用程序创建新数据库的方式不能与先前版本所支持的方式相同。

    请参见以下任何内容:

UltraLite C/C++
  • 支持 Symbian OS   现在通过使用 Codewarrior 或 Carbide C++ 开发环境,为 Symbian OS 平台提供了 UltraLite C/C++ 支持。

  • 新增函数   此发行版本增添了许多新函数。其中包括:

  • 改进的宽字符和窄字符 (ASCII) 支持   尽管现在 UltraLite 只有一种数据库文件格式(窄字符),应用程序仍可以使用 TCHAR 的宽定义。宽字符可转换为其 MBCS 等效形式,也可根据需要将其等效形式转换为宽字符。

  • 增强的函数更改   现有函数的增强包括:

    • 如果您的应用程序不需要 SQL 支持,则使用 ULInitDatabaseManagerNoSQL 函数代替 ULInitDatabaseManager 可显著减小应用程序的大小。请参见ULInitDatabaseManagerNoSQL

    • 已增强的 SetReadPosition 函数可以采用第二个参数 (offset_in_chars),其指明偏移量是以字节为单位还是以字符为单位。请参见SetReadPosition 函数

    • SetSynchInfo 现在执行自动提交,以使所有同步信息被立即保存。

    • ULStoreDefragInit、ULStoreDefragFini 和 ULStoreDefragStep 将不再需要。UltraLite 现在在内部管理数据库存储库碎片整理。

    • 不建议使用 ULEnableUserAuthentication 函数,因为用户验证会一直启用。UltraLite 现在允许最多定义四个可连接到数据库的用户名(缺省用户名为 "DBA",口令为 "sql")。

    • 现在,MobiLink 同步代码必须先调用 ULEnableTcpipSynchronization,然后才能调用 InitSynchInfo。请参见InitSynchInfo 函数

UltraLite 嵌入式 SQL

UltraLite 嵌入式 SQL 不再是静态 API,并且不再需要参考数据库。而 SQL 预处理器仅需要源文件。它生成可将 SQL 语句发送到 UltraLite 的函数。先前版本所支持的一些 SQL 语句将不受 UltraLite SQL 支持。版本 10 支持动态 SQL 语句,而先前版本并不支持该语句。

  • 新增函数   此发行版本增添了许多新函数。其中包括:

  • 增强的函数   现有函数的增强包括:

    • 将 GetSQLColumnName 添加到 UltraLite_RowSchema_iface 中。根据模式的类型,该函数将返回不同的结果:

      • 与 UltraLite_TableSchema 一起使用时,此函数返回 column_id 参数指定的列名。

        与 UltraLite_ResultSetSchema 一起使用时,此函数返回以下两个值之一:

        • 别名(如果为正在讨论的结果集列指定了别名)。

        • 列名(如果结果集列代表一个表列)。

        • 在所有其它情况下,均会返回空字符串。

UltraLite.NET

UltraLite 现在支持 Visual Studio 2003 中的 ADO.NET 1.0 开发,以及 Visual Studio 2005 中的 ADO.NET 2.0 开发。

  • 新方法   此发行版本增添了许多新函数。其中包括:

    • ExecuteResultSet 方法执行一条 SQL SELECT 语句,并返回可更新的结果集作为 ULResultSet 类。请参见ExecuteResultSet 方法

    • ULResultSet 类包括以下方法:Append*、Set*、Delete、Update。有关这些方法的详细信息,请参见ULResultSet 类

    • UltraLite.NET 现在在 TCP/IP 同步期间支持 TLS。

    • ConnectionString 属性和 ULConnectionParms 对象已被增强,以支持受限制的引用。请参见ULConnectionParms 类

    • GetPublicationPredicate 方法返回指定发布的发布谓语字符串。如果此发布不存在,则设置 SQLE_PUBLICATION_NOT_FOUND。请参见GetPublicationPredicate 方法

    • SignalSyncIsComplete 方法用信号通知 ActiveSync 的 MobiLink 提供程序某个应用程序已完成同步。请参见SignalSyncIsComplete 方法

    • SetDatabaseOption 方法为指定数据库选项设置值。请参见SetDatabaseOption 方法

  • 增强方法   现有方法的增强包括:

    • ULSyncParms 类现在利用 TableOrder 顺序属性,来指定将表上载到统一数据库时所应遵循的顺序。请参见AdditionalParms 属性

    • GetSchemaTable 方法现在返回扩展的表元数据。有关完整列表,请参见GetSchemaTable 方法

    • 现在,当表位于 UL_TABLE_ACCESS_MODE_NONE 或 UL_TABLE_ACCESS_MODE_FIND_AGAIN 中时,UpdateBegin 方法在 ResultSet 级别为可选项。过去,必须要进行此更改,才能使 UltraLite.NET API 与 ADO.NET 2.0 结果集兼容。请参见UpdateBegin 方法

    • GetDatabaseProperty 方法现在可以识别更多属性。请参见GetDatabaseProperty 方法

    • ULSyncProgressData 类现在包括一个 Flags 属性。请参见Flags 属性

UltraLite for AppForge Crossfire

UltraLite for AppForge 现在支持 Symbian OS 平台。对 UltraLite 引擎的支持已添加到此发行版本中,从而允许多个应用程序同时访问单个数据库。

  • 新方法   OnWaiting 方法提供了一种机制,使用户应用程序能够处理 GUI 事件并可以取消当前操作。

UltraLite for M-Business Anywhere
  • 新方法   此发行版本增添了许多新方法。其中包括:

    • setMBAServerWithMoreParms 方法在使用一键同步时设置代理服务器信息。这一新方法通过添加一个名为 additional 的新字符串参数,增强现有 setMBAServer 方法。

    • getPublicationMask 方法获取给定发布名的发布掩码。

    • getPublicationPredicate 方法返回指定发布的发布谓语字符串。如果此发布不存在,则设置 SQLE_PUBLICATION_NOT_FOUND。

  • 增强方法   以下现有方法的增强包括:

    • setStream 方法现在支持用于 TLS(Transport Layer security,传送层安全性)的 ECC(Elliptic curve cryptography,椭圆曲线加密算法)。请参见SyncParms 类

注意

ECC 加密并非在所有平台上均可用。有关受支持的平台的列表,请参见支持的平台