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]>