The table lists the most
significant features of SQLite3 COM and SQLite COM. It covers both the
database engine capabilities, the specific additions and the
programming interface. It describes the database features as they are
available in the SQLite COM/SQlite3 COM implementations.
Feature |
SQLite COM |
SQLite3 COM |
Comments |
Zero configuration |
Yes |
Yes |
Only the file name of the
database file must be supplied. Any other parameters are
optional and can be specified at run-time. |
COM interface |
integrated |
integrated |
The database engine and the COM
interface are in single DLL. Note that AXPack1 core is still
needed because the output from queries is packed in AXPack1
objects. This may sound as added footprint, but in the reality
the benefit of using common objects for database communication
and other tasks enables the applications to perform very complex
tasks with little code. |
In-memory database |
Yes |
Yes |
Opening with empty file name
opens a full featured in-memory SQL database.. |
SQL support |
SQL 92 |
SQL 92 |
Not all the features are
supported. See the SQL reference for the both components for
details. |
Sub-queries |
static |
full
support |
The sub-queries are one of the
most powerful mechanisms in SQL. Static means that the sub-query
is executed once and used for each iteration of the outer query.
The full support allows the sub-query to refer fields from the
outer query. |
Query parameters |
No support, You need a StringUtilities
object to overcome this. |
Named and by
position. |
In SQLite COM you can parameterize
queries only by using the string formatting functionality
supplied by the StringUtilities
object.
In SQLite3 COM you have methods like VExecute, CExecute and
AExecute. They allow you put parameters in the executed queries
(for example using ? or $<name>) and pass values for them
as trailing arguments (VExecute), as collection (CExecute) or as
array (AExecute). You can pass any kind of value including
binary (blob). |
Session parameters |
None |
Scalar and object parameters
supported. |
The SQLite3 COM's Parameters
collection enables the application to set named parameters
(values or objects) that can be used in any query executed with
this database object. This includes not only directly executed
queries, but also views and triggers. The session parameters are
accessible through the Parameter database function. Any
method or property on object parameters can be called using the CallObject
database function. |
Parameterized views |
No |
Yes |
See session parameters. |
OLE Date/Time support |
Yes |
Yes - Extended |
For Windows applications it is
more convenient to use OLE date/time values which are actually
regular double precision floating point numbers. This date/time
format is better than most other date/time formats (including
the date/time format inherited from the SQL standard). The OLE
date/time is not only directly convertible from/to double
values, but also precise enough for time stamping. This makes it
the recommended date/time format for SQLite COM and SQLite3
COM. |
Internal database types |
numeric and text |
integer, text, real, blob |
In SQLite3 COM the internal
database value types are enough to fit the needs of any
application. |
Column types |
smart |
smart |
SQLite (2 and 3) allow values
of any of the supported types to be put in any column. Thus the
declared column type is actually just a suggestion. It is up to
the application to decide if it will stick to it or will allow
mixed types to be put in the column. Smart type conversion is
applied in the SQL expressions and the application can determine
the actual type of the value of each particular field in the
returned result. |
Internal COM to database
interface |
textual |
direct |
In SQLite COM the data is
automatically or explicitly converted to text before
sending/receiving it to/from the database engine
(internally).
In SQLite3 COM the data is converted from/to the closest
internal database value type which makes the interface 3 to 5
times faster than in SQLite COM. |
Triggers |
Yes |
Yes |
|
Transactions |
Yes |
Yes |
The transactions cannot be
nested. |
Database storage |
Single file (or in-memory)
SQLite2 UTF-8 format |
Single file (or in-memory)
SQLite3 UTF-8 format. |
The file format is machine
independent. For example the Windows CE versions of the SQLite
COM/SQLite3 COM work with the same files as the desktop
versions. The format is the standard SQLite format and is
compatible also with non SQLite COM implementations based on
SQLite (for example UNIX applications using SQLite in their own
way) |
Database manager |
ALP based |
ALP based |
Database manager is available
for the both components. It is written using ALP.
It can be obtained separately or as part of other products that
include it (if you have installed some of our products you may
already have it - check before downloading separately). |
Availability |
Windows 95/98/ME
Windows NT4/2k/XP/2003/Vista and above
Windows CE 3.0/CE.NET and above (including Pocket PC and
Smartphone) |
Windows 95/98/ME
Windows NT4/2k/XP/2003/Vista and above
Windows CE 3.0/CE.NET and above (including Pocket PC and
Smartphone) |
|
Database locking |
Yes
(Windows CE - No) |
Yes (page level)
(Windows CE - No) |
On desktops multiple
applications can work with the same database file at the same
time. On Windows CE devices only one application may have full
access to the database while the others can only read from it at
the same time. |
Extending the database with
custom functions |
No |
Yes |
See CallObject. |
Note that this is not comparison of the SQLite database engines
alone - SQLite COM and SQLite3 COM add certain features to the standard
engine which are not part of the original SQLite database.
...