Add Is it time to junk the BDE ?

Is it time to junk the BDE? My answer is an unqualified yes. The BDE has outlived it's usefulness and its time for Inprise to replace it with something leaner and meaner.

The BDE initially grew out of the Paradox Engine and was often referred to as IDAPI. It was originally positioned as a response to the then new Microsoft standard of ODBC. Unfortunately, IDAPI did not enjoy the same success as ODBC and was really only used in Borland applications as the common database layer. Back when Borland was selling a variety of separate applications and tools the BDE made sense. It provided a common data access layer through which applications like DBase, Paradox, Quattro Pro, Pascal, and C++ could communicate with a database.

If the BDE had become a common standard and Borland had continued to evolve into a general applications company, then perhaps it would have made sense for the BDE to continue. However, these things didn't happen. ODBC became the common data access layer and was integrated into the OS, not the BDE. Borland divested itself of Paradox and Quattro Pro and is now primarily a development tools company. Instead of the BDE being something positive, it is now the achilles heel that does far more damage to the reputation of Delphi and C++ Builder then anything else, including Quickreports.

I do not know of a single developer that looks at the BDE and says "Wow, a multi megabyte install I have to distribute and install separately, boy I really like that idea!" No, today developers are looking for solutions that compile directly into their application and are easy to distribute. Frankly, the BDE does not meet either of these requirements. Additionally, the BDE is notoriously difficult for the end user of an application to maintain.

Now starting with Delphi 3, Inprise has abstracted the TDataSet architecture so that third party developers could provide data access solutions that compiled right into your application. This was an excellent move by Inprise and if the Delphi third party market was as big as VB's third party market it would have been a huge success. Unfortunately, the Delphi third party market is populated by relatively weak and small companies. I might trust a small company to provide me with a TVisualWidget component, however if I'm selling a multi-million dollar vertical market solution, I'm not going to trust my data access needs to two guys working out of their houses in Russia. Database access needs to come from a trusted source, and due to the small size of the Delphi third party market, only Inprise is in a position to provide this solution.

So what should Inprise do for the next version of Delphi? In my opinion, they should freeze the development of the BDE at it's current level and go into maintenance mode on the BDE. The resources that were working on new features in the BDE should be directed into writing native TDataset derivative based components. For example, there should be a TMSSQLDataset, a TInterbaseDataset, a TOracleDataset, TODBCDataset, etc. The native client/server datasets would be included in Delphi C/S while the TODBCDataset would be included in Delphi Pro and Delphi C/S.

What are the advantages of writing native TDataset components rather then using the BDE? First off, the TDataset components compile directly into your application. There would be no need to distribute a separate database layer like the BDE. This makes your installation simpler and smaller. Next, you would have the source code to the TDataset derivatives. Right now the BDE is a black box, if you have a problem with the BDE good luck solving it. With a native TDataset derivative, you could trace through it's code to determine whether the problem is with your code or with the Inprise's code.

No doubt it would take substantial resources to accomplish the goal of replacing the BDE with native TDatasets. However the benefit would be in positioning Delphi and C++ Builder for the next century instead of basing it on technology that should have been left behind in the early nineties.

In summary, the BDE is a technology whose time has passed, let's hope Inprise decides to let it rest in peace.
Related Discussions
    Well, in design I think there is already an issue. Backend is more then just a database with which you connect. There should be a complete layer...
    One of the quirks of Delphi is that classes in the same unit can access protected and private methods and variables. Borland does this a lot in...
    In the BDE on the other PC (the one without the database), you must add an alias to point to the location of the database in the format of:...
  • ADD TO RESOURCE ON RUNTIME (2001-01-04 11:00:49)
    I think what you are asking is to change the .EXE file at run-time. Yes, it is possible, but nobody I found will share that information. If you...
  • REPEATING FUNCTIONS (2001-01-04 11:46:34)
    The OnIdle event is not hardware dependent. It is called when the program has idle time. The OnIdle event is in TApplication and is a warpper...
    I'm not pretty sure, what your intention is. One possible approach would be to use a edit-field, which cannot be "spyed out" by the usual password...
  • QUERY PARAMETER QUESTION...? (2001-01-05 00:44:03)
    there are two parts first is writing the script with variable and another is using bind variable eg- for first you can say query1.sql.text...
  • SYSTEM.PAS (2001-01-06 06:20:58)
    Probably you are using NT based OS. In order to avoid it use Delphi installer program and select only registering while setup asking setup...
  • MODBC MTABLE.POST - WHY DOESN'T WORK? (2001-01-07 11:32:50)
    Thanks for help :) I use Access database, and my 'ID' field is the standard unique field generated by Access. I've tried to set the field type...
  • CAN NOT RUN DELPHI 5 ENTERPRISE ON WINDOWS 2000 (2001-01-08 00:12:43)
    brother you are not alone as in my knowledge many other developers are also facing the same problem especially while updating control's position or...
Latest News
Submit News Form Past News
Latest Forum Entries