Porting version 9 and earlier UltraLite application code to version 11.0.0

Previous UltraLite applications must be rebuilt with new version 11.0.0 APIs. Since the introduction of UltraLite 10, these APIs have undergone significant enhancements that require that you first make code changes (if applicable) and then rebuild the application.

Before you begin, review the UltraLite new features and behavior changes to see what changes have been made to the API you have employed. See UltraLite new features.

Special application upgrade considerations
  • Your connection code must be updated.

  • As of version 10, UltraLite no longer requires a separate .usm file to create a database. Instead, a database can be configured on the desktop and deployed with the application, or the application can create the database programmatically.

  • UltraLite always has authentication enabled in this version and can support up to four user IDs and passwords. However, if you do not want to maintain authentication in your database, do not create or supply any user IDs and passwords. UltraLite always supplies the defaults of UID=DBA and PWD=sql if none are supplied. See Interpreting user ID and password combinations.

  • If you have multiple embedded SQL files, you must still preprocess each one of them using the SQL preprocessor (sqlpp) to create your C/C++ source files. However, you no longer need to use a reference database. UltraLite databases now support embedded SQL directly.

  • Unicode characters are not supported in the same way as in previous versions. Instead, version 11.0.0 UltraLite databases use UTF-8 encoding for multi-byte characters. As a result, you no longer need to plan for a Unicode database running on a non-Unicode runtime.


UltraLite version 9 and earlier application code upgrade paths