Programming interfaces

General improvements
  • Cursor updates   UltraLite applications now support the ability to modify data in the database while processing a cursor. As with SQL Anywhere databases, not all query result sets allow cursor updates and deletes. Ensure you understand the cases in which cursor updates are allowed and executed. See Fetching data.

  • Simplified connection strings   Because the default user ID of DBA and password of sql are always provided by UltraLite, you can now connect by specifying only the database in your connection string. Furthermore, most databases can be set with the DBF connection parameter. See Connecting to an UltraLite database.

  • Introduction of MLFileTransfer functions   Use the file transfer function to download a file with the MobiLink file transfer utility. The file to be downloaded can be specific to a MobiLink username or a default file. For example, an application may choose to download a pre-configured empty database file to replace the local database (at beginning of month or processing cycle). See MobiLink file transfer utility [mlfiletransfer].

  • Database creation   The UltraLite schema is now part of the database rather than in a separate .usm file. This means that applications can no longer create a new database in the same way as was supported in earlier versions.

    See any of the following:

UltraLite C/C++
  • Support for Symbian OS   UltraLite C/C++ support is now provided for the Symbian OS platform, using Codewarrior or Carbide C++ development environment.

  • New functions   Various new functions have been added in this release. These functions include:

  • Improved support for wide and narrow (ASCII) characters   Although UltraLite now has one database file format (narrow characters), applications can still use wide definitions of TCHAR. Wide characters are converted to their MBCS equivalent and vice versa as appropriate.

  • Enhanced functions changes   Enhancements to existing functions include:

    • If your application does not require SQL support, using the ULInitDatabaseManagerNoSQL function instead of ULInitDatabaseManager can significantly reduce the size of the application. See ULInitDatabaseManagerNoSQL.
    • The SetReadPosition function has been enhanced to take a second parameter, offset_in_chars, which indicates if the offset is in bytes or characters. See SetReadPosition function.
    • SetSynchInfo now performs an autocommit so all synchronization information is immediately saved.
    • ULStoreDefragInit, ULStoreDefragFini and ULStoreDefragStep are no longer required. UltraLite now internally manages database store defragmentation.
    • ULEnableUserAuthentication function is deprecated because user authentication is always enabled. UltraLite now permits the definition of up to four user names that may connect to the database (default is user name "DBA" with password "sql").
    • MobiLink synchronization code must now invoke ULEnableTcpipSynchronization before invoking InitSynchInfo. See InitSynchInfo function.

UltraLite embedded SQL

UltraLite embedded SQL is no longer a static API, and no longer requires a reference database. Instead, the SQL preprocessor requires only the source files. It generates functions that send SQL statements to UltraLite. Some SQL statements that were supported in previous releases are not supported by UltraLite SQL. Version 10 supports dynamic SQL statements which were not supported in previous releases.

  • New functions   Various new functions have been added in this release. These functions include:

  • Enhanced functions   Enhancements to existing functions include:

    • GetSQLColumnName was added to UltraLite_RowSchema_iface. Depending on the type of schema, the function returns different results:
      • When used with a UltraLite_TableSchema, this function returns the column name specified by the column_id parameter.

        When used with a UltraLite_ResultSetSchema, this function returns either:

        • An alias name, if one is specified for the result set column in question.
        • The column name, if the result set column represents a column in a table.
        • An empty string in all other cases.

UltraLite.NET

UltraLite now supports ADO.NET 1.0 development in Visual Studio 2003 and ADO.NET 2.0 development in Visual Studio 2005.

  • New methods   Various new functions have been added in this release. These functions include:

    • The ExecuteResultSet method executes a SQL SELECT statement and returns an updatable result set as a ULResultSet class. See ExecuteResultSet methods.
    • The ULResultSet class includes the following methods: Append*, Set*, Delete, Update. See ULResultSet class for details on these methods.
    • UltraLite.NET now supports TLS during TCP/IP synchronization.
    • ConnectionString properties and the ULConnectionParms object have been enhanced to support limited quoting. See ULConnectionParms class.
    • The GetPublicationPredicate method returns publication predicate string for the specified publication. If the publication does not exist, SQLE_PUBLICATION_NOT_FOUND is set. See GetPublicationPredicate method.
    • The SignalSyncIsComplete method signals the MobiLink provider for ActiveSync that an application has completed synchronization. See SignalSyncIsComplete method.
    • The SetDatabaseOption method sets the value for the specified database option. See SetDatabaseOption method.

  • Enhanced methods   Enhancements to existing methods include:

    • The ULSyncParms class now take a TableOrder order property to specify the order in which tables should be uploaded to the consolidated database. See TableOrder property.
    • The GetSchemaTable method has now returns extended Table metadata. See GetSchemaTable method for a complete list.
    • The UpdateBegin method is now an optional at the ResultSet level when a table is in UL_TABLE_ACCESS_MODE_NONE or UL_TABLE_ACCESS_MODE_FIND_AGAIN. This change was required to make the UltraLite.NET API compatible with the ADO.NET 2.0 result set. See UpdateBegin method.
    • The GetDatabaseProperty method now recognizes more properties. See GetDatabaseProperty method.
    • The ULSyncProgressData class now includes a Flags property. See Flags property.

UltraLite for AppForge Crossfire

UltraLite for AppForge now supports the Symbian OS platform. Support for the UltraLite engine has been added in this release, allowing multiple applications to concurrently access a single database.

  • New method   The OnWaiting method provides a mechanism for the user application to process GUI events and possibly cancel the current operation.

UltraLite for M-Business Anywhere
  • New methods   Various new methods have been added in this release. These functions include:

    • The setMBAServerWithMoreParms method sets proxy server information when using one-button synchronization. This new method enhances the existing setMBAServer method, by adding a new string argument named additional.
    • The getPublicationMask method gets the publication mask for a given publication name.
    • The getPublicationPredicate method returns publication predicate string for the specified publication. If the publication does not exist, SQLE_PUBLICATION_NOT_FOUND is set.

  • Enhanced methods   Enhancements to the following existing method includes:

    • The setStream method now supports ECC (Elliptic curve cryptography) for TLS (Transport Layer security). See SyncParms class.

Note

ECC encryption is not available on all platforms. For a list of supported platforms, see Supported platforms.