UltraLite behavior changes

The next major release of UltraLite will enhance development using industry standard APIs and will enhance development using the component model as opposed to the original static interfaces. These changes will have several benefits for users, including making it easier to develop applications using UltraLite.

As a result of these plans, several UltraLite APIs are deprecated with this release, meaning that they continue to be fully supported in the current software but will not be supported in the next major release. Assistance in migrating applications that use deprecated interfaces will be provided in the next major release.

As with all forward-looking statements, the list of deprecated and discontinued features provided here is subject to change.

Deprecated and discontinued features

The following features are deprecated or discontinued.

  • Static interfaces deprecated   The next major release of SQL Anywhere Studio will not support the static C++ API or the static Java API. An embedded SQL interface will be available, but not through the current generated code mechanism.

  • UltraLite.NET component interface to be superseded by ADO.NET   In this release, UltraLite.NET supports ADO.NET development in the new iAnywhere.Data.UltraLite namespace. ADO.NET provides the benefits of an industry standard interface and of an easy migration path to Adaptive Server Anywhere for large applications. The UltraLite.NET component API (iAnywhere.UltraLite namespace) is deprecated in this release and will not be provided in the next major release.

  • Native UltraLite for Java component interface to be superseded by JDBC   The current Native UltraLite for Java interface is scheduled to be superseded by a JDBC interface.

Other behavior changes

The following is a list of behavior changes from previous versions of the software.

  • New warning for referential integrity deletes during download   UltraLite automatically deletes rows as needed to maintain referential integrity during download. It now raises a warning for each row deleted in this way.

    See Referential integrity and synchronization.

  • Native UltraLite for Java behavior changes   Cursor.getRowCount() method has been changed to return an int. No application changes are required.

  • UltraLite.NET component behavior changes   Cursor.getRowCount() method has been changed to return an int. No application changes are required.

  • Handling invalid synchronization parameters   In previous releases, the UltraLite runtime ignored all invalid synchronization parameters. Misspelled parameters were therefore ignored and a default value used instead.

    In this release, if the runtime encounters an invalid parameter, synchronization fails and the SQL code SQLE_UNRECOGNIZED_OPTION is set. If an error callback has been provided, it will be called once for each invalid parameter. Duplicates continue to be ignored.

  • New libraries for secure synchronization   The security options for synchronization have been moved into separate libraries. If you use either of the ULSecureCerticomTLSStream or ULSecureRSATLSStream security options for encrypted synchronization, you must now link separately against a corresponding static library, or ship a separate DLL.

  • UltraLite for MobileVB integration with Crossfire    If you have existing projects that use the UltraLite for MobileVB integration with Crossfire from an earlier version of the software, you must change the reference to Interop.UltraLiteAFLib.dll to iAnywhere.UltraLiteForAppForge.dll.