On Thu, May 11, 2000 at 04:31:47PM +0200, Pascal Obry wrote:
> The point is that you can switch (using the ODBC panel control) from one
> database to another without modifying the code. You even do not have to
> rebuild your application! So you can transparently use any database, your
> application do not have to know what is used. It just has to conform to
> the ODBC API.
Although this is true in simple cases, retaining compatability with
a range of database products without source code modification becomes
tricky in practice for large production systems. Having been there,
you need to carefully design the database schema for compatibility
with the entire set of desired database products. Additionally,
testing early and often is critical to ensure you retain compatibility.
Things to watch out for include: MS' autonumber, multiple OLE/BLOB
fields per table, keywords as field names, default quoting behavior,
and more. Obviously, supporting Access and SQL Server is easier
(since they're both from MS) than supporting Access, SQL Server,
Oracle, and Sybase.
Yes, ODBC abstracts the database in a useful way; yes, you can support
many database products without rebuilding; just plan early
which databases you're going to support and test against all of
them throughout development. (The same is true of LDAP servers, BTW)