Following is a list of changes and additions to the software introduced in version 9.0.2.
ADO.NET interface in UltraLite.NET UltraLite.NET now supports the ADO.NET programming interface in the new namespace iAnywhere.Data.UltraLite. ADO.NET provides an industry-standard interface to UltraLite, and also provides an easy migration path to Adaptive Server Anywhere for large applications.The ADO.NET interface is recommended over the previous UltraLite.NET interface (iAnywhere.UltraLite namespace), which is now deprecated. See Tutorial: Build an UltraLite.NET Application and UltraLite .NET 1.0 API Reference.
UltraLite for MobileVB enhancements UltraLite for MobileVB now supports Visual Basic .NET programming using AppForge Crossfire.See UltraLite® - AppForge Programming.
UltraLite for M-Business Anywhere enhancements The following enhancements have been made to UltraLite for M-Business Anywhere:
UltraLite for M-Business Anywhere now supports the client/server UltraLite engine. Your application can use the DatabaseManager.runtimeType property to inspect whether the engine or the runtime library is being used.
UltraLite for M-Business Anywhere applications can now synchronize both data and web content with a single operation.
You can use a MobiLink Redirector to synchronize both data and web content through a single M-Business Anywhere server. For synchronization from outside firewalls, this reduces the number of ports that need to be accessible.
M-Business Anywhere 5.5 on Windows XP is now a supported platform. The connection parameters databaseOnDesktop and schemaOnDesktop support this environment.
Additional methods have been added to the API that enable you to gather information about data using the column ID rather than the column name.
Native UltraLite for Java enhancements The following enhancements have been made to Native UltraLite for Java:
Column schema info accessible by columnID instead of just name.
New SyncProgressData ErrorMessage property and improved sync error reporting.
ResultSet, ResultSetSchema keep PreparedStatement alive while in use.
UltraLite.NET component enhancements The following functions are supported by UltraLite.NET. It is recommended that these functions be used as part of the ADO.NET interface (iAnywhere.Data.UltraLite namespace).
New ULCursorSchema.Name, ULResultSetSchema.Name read-only properties.
New ULSyncProgressData ErrorMessage property and improved sync error reporting.
ULCommand.Plan read-only property.
Palm developers can now use a version-independent prefix file In previous releases, the UltraLite prefix file depended on the version of Palm OS for which you were developing. You can now use ulpalmos.h for any version of Palm OS.See Using the UltraLite plug-in for CodeWarrior.
Palm developers can now use expanded mode CodeWarrior supports a code generation mode called expanded mode, which improves memory use for global data. You can now use an expanded mode version of the UltraLite runtime library.See Building Expanded Mode applications.
Trusted certificates can be retrieved from permanent storage In previous releases of the software, the trusted certificate for secure synchronization was embedded in the database schema. On Windows and Windows CE platforms, it can now be stored externally and accessed via the trusted_certificates option.See trusted_certificates.
Dynamic SQL enhancements The following enhancements have been made to the UltraLite dynamic SQL support:
Query optimization improvement In previous versions of the software, the order in which tables were accessed was the order in which they appeared in the query. In this version, UltraLite optimizes the query to find an efficient order in which to access tables. As long as you have defined appropriate indexes in the database, the optimizer helps to improve query execution performance.
Query plan viewing Query access plans now include the index name instead of an index number, for clarity. Access plans can be seen, for example, from the new UltraLite Interactive SQL utility.
IF and CASE expressions The range of expressions supported by UltraLite has been extended by adding the IF and CASE conditional expressions.See IF expressions and CASE expressions.
Table names can have owner names UltraLite tables do not have owners. Support has been added for owner.table-name as a convenience for existing SQL and for programmatically-generated SQL. UltraLite accepts but ignores owner.
UNIQUEIDENTIFIER data type introduced The UNIQUEIDENTIFIER data type is now a native data type rather than a domain defined on BINARY(16). As a result, UltraLite automatically carries out type conversions as needed, so that the String to UUID and UUID to String conversion functions are not needed to handle UNIQUEIDENTIFIER values.See UNIQUEIDENTIFIER data type.
UltraLite query plan descriptions enhanced UltraLite query plan descriptions, which can be viewed in UltraLite Interactive SQL, have been enhanced to be easier to read for better diagnosis of performance issues.
UltraLite Interactive SQL utility An UltraLite Interactive SQL utility is now provided for testing SQL statements against UltraLite databases and for modifying UltraLite data. It also displays query plans so that you can diagnose performance problems.
Command line utilities for database management A set of command line utilities makes database management tasks easier for UltraLite files on Windows computers. These utilities are particularly useful during application development.Each of the new utilities carries out a subset of the tasks that the ulconv utility provides. In future versions of the software, the ulconv utility will be replaced by these newer single-task utilities. See:
Improved integration of MobiLink clients into HTTP infrastructure Two new client connection parameters allow you to specify custom headers and custom cookies.See custom_header and set_cookie.
Synchronization script generation from the Schema Painter The UltraLite Schema Painter now provides the ability to generate synchronization scripts for Adaptive Server Anywhere consolidated databases. This capability makes it easier to extend UltraLite applications to a synchronized architecture.
Synchronization notifications on referential integrity violations Support synchronization callback functions to report referential integrity violations - currently, rows that fail RI are silently deleted.