Main features

  • Support for synchronization profiles   UltraLite now supports synchronization profiles. You can use a synchronization profile to define how an UltraLite database synchronizes with MobiLink. See UltraLite CREATE SYNCHRONIZATION PROFILE statement.

  • UltraLite SELECT statement   The default for UltraLite SELECT statements that do not explicitly contain a FOR clause is now FOR READ ONLY. This change allows UltraLite to choose more optimal plans for queries when updates are not permitted. See UltraLite SELECT statement.

  • UltraLite SYNCHRONIZE statement   A new statement for synchronizing an UltraLite synchronization profile or specific synchronization options. See UltraLite SYNCHRONIZE statement.

  • UltraLite CREATE SYNCHRONIZATION PROFILE statement   A new statement for creating an UltraLite synchronization profile. Synchronization profiles define how an UltraLite database synchronizes with the MobiLink server. See UltraLite CREATE SYNCHRONIZATION PROFILE statement.

  • UltraLite ALTER SYNCHRONIZATION PROFILE statement   A new statement for altering an UltraLite synchronization profile. See UltraLite ALTER SYNCHRONIZATION PROFILE statement.

  • UltraLite DROP SYNCHRONIZATION PROFILE statement   A new statement for deleting an UltraLite synchronization profile. See UltraLite DROP SYNCHRONIZATION PROFILE statement.

  • Support for SQL Anywhere passthrough scripts   UltraLite utilities now include support for SQL Anywhere pass-through scripts. The changes apply to the following utilities:

    • ulcond11
    • ulunload
    • ulload
    • ulinfo
    • ulsync

    See:

  • UltraLite database validation   You can now use the ulvalid utility or ValidateDatabase API to validate an UltraLite database. The validation tests for certain types of corruption in the database file, and you can use command line parameters to refine your results. See UltraLite Validate Database utility (ulvalid) and Validate an UltraLite database.

    UltraLite.NET now supports the ValidateDatabase function. You can now validate a database or specific tables with or without a connection. See ULDatabaseManager class and ULConnection class.

    You can now use the Validate Database Wizard in Sybase Central to validate an UltraLite database. The Validate Database option is available on the Tools menu.

  • Support for events and notifications   UltraLite now supports events and notifications. Notification messages are sent to registered queues or connections when events occur. User events may also be defined and triggered by applications. APIs for events and notifications are provided in each supported language. Additionally, a SQL function is provided to access the API functionality.

  • UltraLite support for isolation levels   Now, by default, connections are isolated from each other. Uncommitted changes by other connections and downloads are not visible until committed.

    You can now set the isolation level to READ_COMMITTED or READ_UNCOMMITTED. See UltraLite isolation levels and UltraLite transaction processing.

    UltraLite.NET now supports the ReadUncommitted isolation level. The default isolation level of a connection in auto-commit mode is ReadCommitted. See UltraLite transaction processing and UltraLite isolation levels.

  • UltraLite ALTER DATABASE SCHEMA FROM FILE statement   You can now use the ALTER DATABASE SCHEMA FROM FILE statement to alter an UltraLite schema. The ALTER DATABASE SCHEMA FROM FILE statement replaces the 9.0.2 schema upgrade feature that was implemented with the now removed UpgradeSchemaFromFile or ApplyFile methods. Use either the ulinit or ulunload utilities to ensure that the DDL statements required are syntactically correct.

    See:

  • Extract Database Wizard behavior changes   You can now exclude tables from the extraction process, and the Extract Database Wizard now omits publications with duplicate names from the list of available publications. See Upgrading version 9 and earlier UltraLite databases.

  • UltraLite client version and build number added to MobiLink log files   During synchronization, UltraLite clients now add their version and build number to the MobiLink server log. See:

  • UltraLite LOAD TABLE statement   The LOAD TABLE statement can now be executed on desktop computers. See UltraLite LOAD TABLE statement. See UltraLite LOAD TABLE statement.

  • Background synchronization support   You can now begin a synchronization on a separate thread at any point in your application and UltraLite will upload only the rows that were committed at the time the upload began. You can now modify the database during the upload and commit your changes without affecting the upload. Any rows committed while the upload is in progress are ignored by the upload. See Concurrency in UltraLite.

  • Enhanced GUID identifier support   In previous versions of UltraLite, runtime allowed the input and output of UUID (Universally Unique Identifier) or GUID (Globally Unique Identifier) identifiers as either 16-byte binaries or strings. An endian conversion made the identifiers compatible with GUID structs. In UltraLite 11, GUID structs can be explicitly input and output from the runtime and the endian conversion is not required.

  • ul_stream_error struct   In UltraLite 11, the stream_id, stream_context, and error_string_length fields are removed. In addition, the error_string field has been changed from a user-supplied char * to a static char array. See ul_stream_error struct.