New "Developer" considering Delphi as a database Solution.  Seeking Advice/Direction.

Posted on 2004-10-20
Last Modified: 2013-11-23

It has been years since I have done any programming or work with databases, all of which was done in Paradox (4.0 & 5.0) and the Windows 3.1 environment.  My new task at had is selecting a development environment and database solution for a project.  The makeup of this database will really not be extremely complex (15-20 tables).  In attempting to get up to speed with technology changes in programming & databases, I am finding that for the most part the BDE is being abandoned and SQL/Web-solutions/.NET are here/replacing older database solutions.

One option “seems” to be using Access as a development environment, but I was leaning towards Delphi 7/8 which leaves the choice of a database solution up in the air.  Mainly I am asking for advice on what type of database/development platform to use.  Our work environment consists of Windows XP machines and Windows Server 2003 (w/SQL Server 2000).  The final application/database will probably need to be client/server, although very few users will ever access the database simultaneously (maybe 4-8).  The data, due to government regulations, would eventually need to be backed up and easily accessible for 7 years, but the application/database would not be distributed to a large user base (10 people max).

I don’t really know much about .NET, ASP etc, and whether that is something I should investigate/consider more either.  Any advice/direction appreciated with regard to Delphi and Database solutions.
Question by:hbtitansfan

Assisted Solution

Delphian earned 75 total points
ID: 12365791

Development Tool:
With Delphi 7 you can develop your system in a C/S
way and port that solution (depending on how much
dependence you have from WinAPI  tricks) to .NET
On the .Net Framework, there is Delphi 8 where you
can use your VCL code created on D7.
There's a few components that don't go on .NET but
majority of the D7 components will be there.

If you go .NET framework straight, many experienced developers
gets troubled with its workings, including myself I've got perplexed
some times. Is not their fault, it is .NET that created such a revolution
on the way of how a application interact with the system. For good
or evil, this is another discussion that I will NOT enter. (It's perfect
flame wars).
With Delphi you can also develops Web front-ends for your business
rules either using ASP Active Server Objects, WebSnap
(Borland's architecture for creating dynamic front-end) and Intraweb
applications - these 3 with Delphi 7. You can compile either CGI, ISAPI,
Apache Modules and stand-alone apps for debugging.
With Delphi 8 for .NET, your web front-end can be ASP.NET  or Intraweb
(but you'll have to buy IntraWeb because is not included on D8 now. It
is included on Delphi 7). Note: ASP.NET is COMPLETELY different in
structure and concept from classic ASP.

I go for Delphi. (But I am Delphi developer)

Database Manager:

I'm consider myself a good MSSQL 2000 DBA. But I don't like much
the philosophy of MSSQL 2K. If you are considering a database change,
I'd go FirebirdSQL. Free, robust and outperforms SQL Server on high
contention environment.
If you need replication, there are some third-party replication modules.
(The way you describe your environment, doesn't seems that you'll need

LVL 12

Assisted Solution

Ivanov_G earned 50 total points
ID: 12367054
For IDE - I recommend you Delphi 7. If you are going to have some clients simultaneously - you should think of some sort of application server. This could be MTS COM+ object or SOAP web service. I would recomment you SOAP. Delphi 7 can create them both. The web service can easily be ported to Kylix and running under Linux.

Connecting to DB from Delphi ... The best option is Direct Access Components, they are faster, but the disadvantage is that if you want to change the database - you will have to rewrite part of the code. While using SOAP applications, you DataBase components will sit in the server and you can use TDataSetProvider and TClientDataSet to transfer the data. If you want more DB independance - consider dbExpress as good choice. Borland made it as a replacement of BDE.

About the database... If you want FREE database server - the best one is PostgreSQL. There is a version for Windows, I think the site was Large part of the stuff in this DB is "imitated" from Oracle. The SQL dialect is called PGPL/SQL, something like PL/SQL in Oracle, but if you want, you can add modules and write stored procedures in other languages like C or Perl... So it is good choice.
If you want something PAID - then Interbase is for you. The only thing I hate in Interbase/Firebird is that after a SELECT statement it enters a transaction, but I can live with that...
LVL 14

Expert Comment

ID: 12367067
> If you want something PAID - then Interbase is for you
Of course, there is also the OpenSource branch of Interbase ...
Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.


Expert Comment

ID: 12368073
D7 + InterBase is a perfect solution!

I use old components named FreeIB to direct connect to the DB, but now-a-days, the equivalent components come with delphi 7 and are named IBX... I didn't change to them as it was easier for me to trick the FreeIB to work with lates releases of both, D7 and InterBase 1.5 (I can mail them to you if you want, but better use IBX as they are supported by Borland, and tricked FreeIB are only supported by me!).

Also, to mamage the DBs I use IBOConsole, and have done a tool to translate DBF or CSV tables into FireBird DBs easily, that again can mail to you if you feel in the need (or can find it yourself at

LVL 17

Accepted Solution

Wim ten Brink earned 125 total points
ID: 12368201
Since you already have SQL Server, I'd just suggest that you use it. Don't even bother with Interbase, Access or whatever else. SQL Server, especially on a dedicated system, will perform well enough.

Delphi 7 would be a nicer solution than Delphi 8, though. And all you will need are the ADO components. Keep in mind however that designing client-server databases is completely different from what you've been used to.

Now, you have two possible setups. Either do a two-tier application where your client connects directly to the database through ADO or create a multi-tier application where you create your own server components to install on some special server system. The 2-tier solution is relatively straightforward for you. It's quite similar to what you're already used to. For a multi-tier solution you will have to think about the best way to set up the middle tier. (The server with your server components.)

There are quite a few solutions for multi-tier applications. SOAP has been mentioned already but Delphi's implementation of SOAP is flawed, making it incompatible with many SOAP clients. With Delphi 8 you can consider .NET Remoting but this technique hasn't proven itself yet. It's still to experimental. You could create your own TCP/IP protocol to send data between client and server but this requires a lot of work. You could use DCOM but this requires lots of insight in security issues and requires things to be set up correctly. MIDAS is an option too, with CORBA but I consider then a bit too expensive for what they offer.
The solution I once chose for in a similar situation was COM+ though. (Used to be known as MTS.) It's free and works well on W2K and better. You create a COM+ component in Delphi that exposes several methods and install it as a COM+ application. Then any client can connect to this server, call the COM+ component and access it's methods.

However, all these multi-tier solutions are only usable when you have at least a dozen or so users active at the same time. It allows you to divide processing time over multiple systems. Actually, some multi-tier solutions have been created to even support thousands of simultaneous users thus it is a bit overkill if no more than 4 users are active at the same time. A 2-tier solution would be a lot better in that case.
The only other advantage of multi-tier applications would be that you tell the client to which server it has to connect and the server knows to which database you have to connect. In a 2-tier application, every client needs to know where the database is...

So, open Delphi 7, drop an ADOConnection component and some ADOQueries to it (avoid ADOTables!) and set it up correctly. Add the data-aware components you need and this whole thing might be finished in about a week. ;-)
Keep it Simple!
LVL 14

Expert Comment

ID: 12368251
> The solution I once chose for in a similar situation was COM+
So what is the solution that you use now, Alex? hehe ;-)
LVL 17

Expert Comment

by:Wim ten Brink
ID: 12369305
Well, my current solution was to go to a different employer, move back in time to use Delphi 5 and work with applications that use FlashFiler as database. And these applications are just desktop applications that can communicate with each other through a simple TCP/IP protocol, if needed.
My current projects have become a lot easier with databases but more complex with the real internal works of the PC and telephony. (Sending faxes, connecting to a PBX system, etc.) Less administrative and more technical. A better challenge for me. :-)

Still, if we would have to build a large database system then I would advise my employer to start using COM+ because it's quite easy to use, once you're past the huge learning curve. ;-)
LVL 14

Expert Comment

ID: 12372785
COM+ ... gosh, that's one thing that I've been reminding myself to learn, but never managed to motivate myself enough to learn it ;-)

Been using FPiette's MidWare components as the application server/middleware instead, and it is still working reliably, with about 9k users and approx. 1k concurrent users.

Author Comment

ID: 12377122
Thanks for the Comments and Suggestions.  Very much appriciated.  I will close this question out as answered (New to this service).  For anyone that used Paradox, when i used it, i simply fell in love with ObjectPAL.  Eventually learning it inside out, before basically leaving the "computer-world" behind for a few years.  Once tried my hand at C, and Delphi 1.0 but could never "get into them" like i did Paradox/ObjectPAL.  Anyone that used Paradox and also "loved" ObjectPAL--Anything similar in/with Delphi?

Thanks again Folks
LVL 17

Expert Comment

by:Wim ten Brink
ID: 12378810
I've used Paradox too in the past. I still have it installed on my current system, although I don't really use it anymore. I never done much with ObjectPAL though, simply because I used Delphi even before I started using Paradox. (And before Delphi I used Turbo Pascal with DBase IV.) Paradox still exists but it's in the evil hands of Corel who have messed it up completely. Besides, Paradox has to compete with Access, MySQL and InterBase/Firebird these days and these other databases just perform better in multi-user environments. Paradox also had lots of problems with corrupt indices and can be quite slow when you're trying to use complex queries, compared to other databases.

These days SQL just happens to be the most important database language and Paradox just isn't good at supporting it. And especially in a commercial environment with dozens of users the preference would be to use a "real" SQL database like SQL Server or Oracle. (And perhaps InterBase, but Interbase is more somewhere in the middle, with SQL Server and Oracle on top and Access and MySQL at the bottom. It's like a link between simple systems on the bottom that can be used for simple projects and the complex systems at the top for real enterprise solutions.)

In the future, look at the bottom-left below the last post. There's an option there that you can use if you want to split the points over multiple experts, in case more than one person gave you a useful answer.

Featured Post

Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In this tutorial I will show you how to use the Windows Speech API in Delphi. I will only cover basic functions such as text to speech and controlling the speed of the speech. SAPI Installation First you need to install the SAPI type library, th…
Creating an auto free TStringList The TStringList is a basic and frequently used object in Delphi. On many occasions, you may want to create a temporary list, process some items in the list and be done with the list. In such cases, you have to…
Internet Business Fax to Email Made Easy - With eFax Corporate (, you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
Email security requires an ever evolving service that stays up to date with counter-evolving threats. The Email Laundry perform Research and Development to ensure their email security service evolves faster than cyber criminals. We apply our Threat…

813 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now