UltraLite User's Guide
UltraLite Features and Limitations
The following SQL statements can be used in UltraLite applications:
Data Manipulation Language SELECT, INSERT, UPDATE, and DELETE statements can be included. You can use placeholders in these statements that are filled in at runtime.
For more information, see Writing UltraLite SQL statements.
TRUNCATE TABLE statement You can use this statement to rapidly delete entire tables.
Transaction control You can use COMMIT and ROLLBACK statements to provide transaction control within your UltraLite application.
START/STOP SYNCHRONIZATION DELETE statements These statements are used to temporarily suspend synchronization of delete operations.
For more information, see Temporarily stopping synchronization of deletes.
Some features of Adaptive Server Anywhere cannot be used in UltraLite databases. You cannot use the following Adaptive Server Anywhere SQL features in your UltraLite applications:
Dynamic SQL All SQL in UltraLite applications must be known at compile time (static SQL), so that the analyzer can generate code to process the statements. You can not include code in your application that generates and executes arbitrary SQL statements. You can, however, use parameterized SQL statements to control the behavior of your statements at run time.
If you need the capability to execute dynamic SQL, or need other features not present in UltraLite, consider using Adaptive Server Anywhere. Adaptive Server Anywhere is a full-featured database that has a footprint small enough for many mobile and embedded applications.
Cascading updates and deletes Some applications rely on declarative referential integrity to implement business rules. These features are not available in UltraLite databases.
Check constraints You cannot include table or column check constraints in an UltraLite database.
Computed columns You cannot include computed columns in an UltraLite database.
Timestamp columns You cannot use Transact-SQL timestamp columns in UltraLite databases. Transact-SQL timestamp columns are created with the following default:
DEFAULT TIMESTAMP
You can use columns created as follows:
DEFAULT CURRENT TIMESTAMP
There is a behavior difference between the two: a DEFAULT CURRENT TIMESTAMP column is not automatically updated when the row is updated, while a DEFAULT TIMESTAMP column is automatically updated. You must explicitly update columns created with DEFAULT CURRENT TIMESTAMP if you wish the column to reflect the latest update time.
Schema modification To modify the schema of a UltraLite database, you must build a new version of your application.
For more information, see Schema changes in remote databases.
Global temporary tables The temporary aspect of global temporary tables is not recognized by UltraLite. They are treated as if they were permanent base tables, which you should use instead.
Declared temporary tables You cannot declare a temporary table within an UltraLite application.
System table access There are no system tables in an UltraLite database.
Stored procedures You cannot call stored procedures or user-defined functions in an UltraLite application.
Java in the database You cannot include Java methods in your queries or make any other use of Java in the database.
SQL variables You cannot use SQL variables in UltraLite applications, including global variables.
The @@identity global variable is an exception, and can be used within UltraLite applications.
SAVEPOINT statement UltraLite databases support transactions, but not savepoints within transactions.
SET OPTION statement You can determine the option settings in an UltraLite database by setting them in the reference database, but you cannot use the SET OPTION statement in an UltraLite application to change option settings.
System functions You cannot use Adaptive Server Anywhere system functions, including property functions, in UltraLite applications.
Functions Not all SQL functions are available for use in UltraLite applications. For example, the ISDATE and ISNUMERIC functions are not available for use in UltraLite databases.
Use of an unsupported function gives a Feature not available in UltraLite
error.
Triggers Triggers are not available in UltraLite databases.
The SQL error message Feature not available in UltraLite
is reported when an UltraLite program attempts to use a SQL statement or feature that is not supported in UltraLite.
For information on other UltraLite limitations, see UltraLite data types, and Size and number limitations for UltraLite databases.