On Mon, 2005-01-31 at 09:27 -0500, Downey, Shawn wrote:
> In our organization, my management is debating the use of SQLite vs. MS
> SQL Server 7 for an upcoming MS Windows project. 

As it turns out, I am familiar with the software that Mr. Downey
refers to and can state with confidence that his management
is asking the wrong question.  The question is not SQLite vs.
SQLServer but rather, should one database be selected over the
other.  The answer is "no".

Mr. Downey's software was written in the 90s, originally
for HPUX and an Informix database.  It has, at various times,
included database backends for

    * Informix
    * PostgreSQL
    * SQLite 
    * Oracle

There might be others that I do not know about.  The software
is highly database agnostic.  It does very little other than
some simple SELECTs with an occasional INSERT or UPDATE thrown
in.  There are no triggers, views, or even subqueries.  Any
database that is remotely SQL compatible should work.  The 
database interface is very modular - it should not take more
than an afternoon to write a driver for yet another database
engine.

If my guess is right, the version of the software that Mr. Downey
is using has only drivers for SQLite.  This is likely the case
because SQLite is the best solution for the particular problem
and also because of the various available drivers, only the
SQLite driver is cross-platform.  (The Informix driver
requires esql on HPUX and the PostgreSQL and Oracle drivers
require Linux.)

The software that Mr. Downey is working on has survived to
this day because it is cross-platform.  It was designed from 
the beginning to using any SQL database engine and to run on
any reasonably modern operating system.  Other contemporaneous
software that was specific to HPUX and Informix has by this
time all but died off.  Mr. Downey's software has been able
to adapt and has therefore survived.

The lesson is simply this:  Do not choose.  Do not make an
arbitrary choice for one particular database engine - make it
work with all that you have at hand.  Do not code for just
one operating system - port early and often.  It sounds like
this would be a lot more work, but experience suggests that
the opposite is true.  Portable software turns out to be much
easier (and less costly) to write and maintain.  Especially
long-term.

So if the question is asked about whether you should port
program A to SQLServer or port program B to SQLite, the right
answer should be to port both programs to both databases.
Then deploy whichever database best meets the needs of the
moment.
-- 
D. Richard Hipp <[EMAIL PROTECTED]>

Reply via email to