UltraLite development is possible using two kinds of programming interface:
UltraLite components UltraLite components bring UltraLite database and synchronization features to users of rapid application development tools. They provide a familiar interface for each supported development tool. UltraLite components provide a simple table-based data access interface and also dynamic SQL for more complex queries.The UltraLite components were introduced in version 8.0.2.
Static development models Embedded SQL, the static C++ API, and the static Java API are still available. These are now referred to in the documentation as static interfaces to distinguish them from the components.
In particular, note the following:
Native UltraLite for Java is an UltraLite component, which uses a C/C++ UltraLite runtime. The UltraLite static Java API is a pure Java solution, available in previous releases, in which queries must be specified at compile time.
UltraLite for C++ is a component interface. The UltraLite static C++ API is a static interface, available in previous releases, in which queries must be specified at compile time.
Embedded SQL is a static interface, in which queries must be specified at compile time.
Following is a list of changes and additions to the software introduced in version 9.0.
New components In addition to the components for AppForge MobileVB, eMbedded Visual Basic, and Java, the following components have been introduced:
UltraLite .NET A component for development using the Visual Studio .NET environment. Applications built with this component can be deployed to devices that support the .NET Compact Framework (version 1.05.0000 or later).See Introduction to UltraLite.NET.
C++ component A component for development using C++ compilers.See Introduction to UltraLite for C/C++ Developers.
Pocket IE support The eMbedded Visual Basic component has been upgraded to an ActiveX component. Support has been added for development using JScript, for applications that run from Pocket IE on Windows CE devices.
Dynamic SQL In addition to the table-based data access interface provided in version 8.0.2, the UltraLite components can now use Dynamic SQL for more complex queries, including multi-table joins.
Connection parameters Connection parameters for the UltraLite components (except C++) are now exposed as individual properties rather than as a single string. This design makes debugging connection issues easier and makes connection management more straightforward.See UltraLite Connection String Parameters Reference.
Drag and drop MobileVB component The MobileVB component can now be dragged on to a form. The properties of the component can be set in the design environment as well as in code.See UltraLite for AppForge architecture.
Multi-process access The C++ component supports access from more than one process. To develop an application using this model, a separate UltraLite database engine and the application must be linked against a different UltraLite runtime library.See Compiling and linking your application.
Concurrent synchronization In previous releases, all access to data was prevented during synchronization. Full access to the data is now provided during the download phase of synchronization. Read-only access is provided during the upload phase.See Concurrency in UltraLite.
Palm OS enhancements On the Palm OS the structure of the UltraLite code has been reorganized to make better use of Palm database segments.
Extended error information More error information is available to applications built using the UltraLite components.
Unicode library available on Windows NT/2000/XP A Unicode version of the UltraLite runtime library is provided for embedded SQL and static C++ API applications. This version is used by the UltraLite components. When using this library, UltraLite database files are compatible between Windows CE and desktop operating systems.
Windows XP supported as a deployment platform UltraLite application deployment is now supported on Windows XP.