KyleCordes.com
Home Articles BDE Alternatives Guide Services & Training About
 

Why not just use DataSnap / DBExpress / BDE ? (2/2)

The BDE:

The BDE has a number of weakness, which is a big reason so my many BDE Alternatives exist and this Guide is useful:

  • Deployment of the BDE is large and often painful.  If a user has another BDE-based app it can conflict with your app.  Deployment the BDE is a multi-megabyte install, adding to the size of your software distribution.   The rapidly increasing size of hard drives and use of CD-ROM has made this nearly a non-issue, except in software to be downloaded by consumers. Deployment and support costs continue to be high.
  • Its underlying architecture is oriented toward Paradox and dBASE file server based table - to me, it never quite "feels right" with database servers, in the sense that it seems as though the BDE is trying to pretend that a DB server is really just a big Paradox table.
  • BLOB problems: several of the SQL Links drivers do not work well with BLOB data types.
  • As with any middleware, the BDE is a layer in between your application and the underlying database; such layers always have some kind of performance penalty.  The is particulary annoying when your are using the BDE to use another layer of middleware, such as ODBC; in that case, the ODBC layer is necessary, but the BDE layer is "extra".
  • Also as with any middleware, there will be some underlying features that the BDE does not expose; for example, when using Interbase, the BDE cannot access Interbase array types.  The BDE does not yet support Oracle8.  (BDE 5, part of the just announced Delphi 4, now supports Oracle8 with all of its new daratypes).
  • Cost: the Enterprise version of Delphi, which includes the BDE SQL Links, costs $3000+.  For any given database server, you can find a solution here that will likely be faster, smaller, simpler, easier to develop with, and cost much less than that... although, as pointed out in the pricing page, the SQL Links would be well worth $2000 if they were small, fast (some of them are fast, by the way), easy to deploy, and were bug / "issue"-free.
  • Specific Problems: The BDE has specific "issues" with some databases, which will affect you if you use those databases. For example, its handling of mutliple queries at the same time with MS SQL Server is weak compared with some of the BDE alternative products.

DataSnap / DBExpress

Many of the above downsides have been addressed effectively by DataSnap / DBExpress, but reason still remain to consider third party alternatives:

  • The DBMS you are using may not be well-supported by DBExpress. For example, as I write this, The Borland DBExpress drivers have a significant problem with transaction support in MySQL.
  • You may need zero-DLL deployment, while DBExpress requires driver DLLs.
  • You may benefit from access to special features of your DBMS, which DBExpress does not expose, such as various data types etc. This issue is frequently relevant to Oracle users, for example.

ADOExpress

Another tempting and very worthwhile option to consider, including in the Delphi / C++B box, is ADOExpress. I'll add more thoughts here later on this topic.

 

 

Introduction

The List

By Category

By DB Server /
File Type

Why Not
the BDE?

How to Choose

Multi-Tier
Development

Pricing

BAG FAQs


kylecordes.com Headlines:

My First Emacs (plus Slime, Swank, Clojure) on Mac OSX

Mobile Workforce Management, a Five Year Mission Completed

SaaS: The Business Model ? Slides, Audio, Transcript

Upcoming Talk: How to SaaS, Revisited

Books, shirt, free to whoever wants them at STL JUG tonight

Amazon S3: Now Much Safer for Important Data

To the Clouds and Back (Cloud User Group talk)

iPad: Yet Another Opinion

Upcoming talk: Cloud Computing User Group

StartupToDo scholarships ? 6 down, 4 to go



kylecordes.com, Copyright 1999-2009 Kyle Cordes - Contact Kyle