Connecting to the Delphi Database

I have been using delphi for years, but never for a database, but recently started researching and testing.

I have to say that I'm impressed, most things happen automatically, I'm used to writing manually in php and python.

I am going to develop a commercial system for a friend, (2 layers) 5 user computers, 1 database server.

The database server will be a decent machine with (RAID-1) two hard drives (MySql5.1 or Postgre or Firebird, open to suggestions).

Ado

  • Ease of use
  • Easy deployment (mysqlconnector installer only)
  • The slower?

DBEXPRESS

  • It is necessary to send 4 files [dbxconnections.ini, dbxdrivers.ini, mysqldll, driverdll]
  • The harder (harder to use)
  • ClientDataSet adds complexity but looks really useful
  • No free Postgre driver?

Zeos

  • Easy Deployment (1 dll)
  • Ease of use

As you can see, the desired functions are:

  • fast
  • easy to use
  • easy to deploy

I can’t check everything in a real scenario (clients, server), so I hope that you guys with experience can help me in choosing and why.

EDIT: Thanks to everyone, I think I’ll go with ADO (maybe) or Zeos

Thanks in advance Arthur

+7
database delphi ado dbexpress zeos
source share
8 answers

I have worked on many large volume commercial systems using ADO without any problems. Deployment is relatively simple from the moment it is included in the OS. Since he has such a wide audience, most of the main problems have been identified and fixed. Getting help connecting ADO is easy. Database support is very deep ( connectionstrings.com ), which makes support for additional database engines almost trivial (you might need to install client drivers, but that would be the same for almost any solution).

Performance is not a big issue; it really goes well with the database architecture and engine selection.

+4
source share

@arthurprs, a script for you

(2 layers) 5 user computers, 1> database server.

alt text http://www.techsolusa.com/images/firebird-logo-64.gif Firebird RDBMS is a very good option because it is very stable, works quickly on Linux, Windows and various Unix platforms and meets your requirements.

alt text http://d.yimg.com/kq/groups/12858579/homepage/name/homepage.jpg Respect for the components I connect to go for ZEOS .

I used this combination in many small and medium projects with excellent results.

+5
source share

id should say that they really like NexusDB , but the cost for client / server versions may not be worth it.

it works as a client / server or is fully implemented, simple enough, you can have it in your application or switch between them, depending on the needs of your client.

  • the built-in database is free,
  • Client / Server Developer Score AU $ 500
  • Installation cost is not required.

Oh yeh and its written in delphi;)

+2
source share

I would say to go with Firebird - this is the most used database engine in Delphi land (see here ). To connect, it might be better to go with Zeos (for free) or DBX (if you can afford the Architect version - the only one that has the Firebird driver in it).

About ADO: A mature connection layer, but it will (forever - most likely) be tied to Windows, while Delphi will transition to a cross-platform platform. Also, yes, it tends to be slower for many reasons, including the ODBC drivers that are used in certain situations. But in your case, of course, as skamradt says, I don’t think it will make a big difference.

+1
source share

Although I read that people don't like the idea of ​​mixing the two, I had good results using ADO Datasets as the “provider level”, which then passes the data to TClientDataSets, so there is no reason why you cannot use ClientDataSets if you go over ADO route, if you find that you need them (and they are useful).

Otherwise, I would repeat the comment that ADO is a proven, reliable mechanism that will not go anywhere. I always found it more than fast enough. And the configuration using UDL files is nice and easy.

+1
source share
  • dbGo (ADO) is easier to manage, more versatile, slower
  • dbExpress is faster, harder to manage, supports less DBMS
  • ZeosDBO is easy to manage, universal as dbExp, slow as dbGo, cross-platform, has several additional components, all sources are available

There are several other libraries that resolve all of the above doubts, although they are all commercial products. But there I am biased :)

0
source share

We used postgreSQL using Devart pg components with great success in medium-sized database applications. We conducted a limited comparative assessment with this combination and found that it is 2-3 times the speed of using ADO, etc.

0
source share

- data access components

I also approve of the combination of TClientDataset and ADO. I worked with him in the past, and I can say that he is trusting. The flexibility of TClientDataset is a big win. DBExpress is good too. In fact, I use clientdatasets with almost any level of data access that has a TDataset descendant ...

- Server

Firebird Free and easy to use OLEDB (I used with ODBC) and DBExpress (D2010 + has its own DBX driver) - I don’t know ZEOS, but I believe that it also connects to FB. Scaling is good for many connections and large databases. There are Firebird databases with 500 GB and many users have reported.

0
source share

All Articles