Board index » delphi » Please recommend an approach to developing scalable database applications

Please recommend an approach to developing scalable database applications

Hello Everyone,

I am looking into developing some database applications that will run on
Windows95/NT.  These applications may possibly run on a single PC used by a
single person, or might run on multiple PCs with as many as 30 people accessing
the same data.

My goal is two fold:
  1) To provide a product with a small price tag to the small users
  2) Build applications I can easily scale from 1 to 30 users

For the single user, I considered using Microsoft Access (Jet) engine.  This
might work well if I use Visual Basic or Visual C++.  But could I then scale
the application easily to Microsoft SQL server?  Would it be best to use DAO or
ODBC if I went that route?  I've also given consideration to using Borland
Delphi and the Interbase engine.

For larger installations, I have an array of database choices that are very
good.  However, it is important that I don't have to re-write (much) code to
support the different database engine than what would be used in the single
user environment.  I've heard many good things about the Delphi/Interbase
combination, but DAO/Access/Microsoft SQL Server seems to have more press
(which might imply a better product).

Can someone please suggest what tools and database products I should consider.
 I'd like to hear the pros/cons of each.

Thanks in advance,
Paul

--
// Paul E. Jones
// pau...@acm.org * http://members.iglou.com/paulej/
// PGP public key available by e-mail or my WWW page
// Key fingerprint =  28 02 6D 1F 20 AE 9F 82  43 02 DD 02 0C 00 3C 65

 

Re:Please recommend an approach to developing scalable database applications


pau...@acm.org (Paul E. Jones) wrote:

Quote
>Hello Everyone,
>I am looking into developing some database applications that will run on
>Windows95/NT.  These applications may possibly run on a single PC used by a
>single person, or might run on multiple PCs with as many as 30 people accessing
>the same data.
>My goal is two fold:
>  1) To provide a product with a small price tag to the small users
>  2) Build applications I can easily scale from 1 to 30 users

If you know you're never going to have any more than 30 users, I'd use
VB4 over Access 7. If you're going to get much bigger than that, I'd
go to SQL Server.

Regarding Delphi, it depends on what functionality you're planning on
having. Delphi is a great product, but there aren't very many custom
controls on the market for it, so if you want to make it do anything
out of the ordinary, I'd stick to the Microsoft line.

By the way, I'd use ODBC to connect to Access just in case you decided
later you wanted to go to 50-100 users-then you would want to use SQL
Server. Take a foo's advice, though: if you're married to 16 bit,
DON'T use VB4, use VB3. It's much more reliable.

Re:Please recommend an approach to developing scalable database applications


Hello Everyone,

        Referring to Paul's request and Eric's comment about this
        topic i have to add a bit myself now. Having developed client/server
        VB apps myself (both with Access & SQL-Server) i would recommend
        using VB & SQL-Server. Access might be great if you are heading for
        a single user version only but IMHO there are aspects that make
        Access insufficent for to use it in a true multi-user environment.

        The main difference lies in the way of access; while with SQL-server
        you just transfer the query-statement and get a result set in return
        (results in low network traffic) Access still uses DFA (direkt file access)
        (which results in high network traffic). This isn't just a theoretically
        issue i have tested it myself (can you justify YOUR application to slow down
        the complete network ?). Dealing with SQL-Server you can start up with a
        small one user solution and increase the number of users without problems.

        By using SQL-Server STP's (Stored procedures) you have the possibility to
        reduce the amount of client-side logic and move it to the server this way.

        Also with an dedicated SQL-server (multiuser environment) you can set up
        a well performing hardware which of course can be upgraded once your users
        require a even better performance.

So long,

Richard (sco...@atnet.at)

Re:Please recommend an approach to developing scalable database applications


Quote
Paul E. Jones wrote:

> Hello Everyone,

> I am looking into developing some database applications that will run on
> Windows95/NT.  These applications may possibly run on a single PC used by a
> single person, or might run on multiple PCs with as many as 30 people accessing
> the same data.

> My goal is two fold:
>   1) To provide a product with a small price tag to the small users
>   2) Build applications I can easily scale from 1 to 30 users

> For the single user, I considered using Microsoft Access (Jet) engine.  This
> might work well if I use Visual Basic or Visual C++.  But could I then scale
> the application easily to Microsoft SQL server?  Would it be best to use DAO or
> ODBC if I went that route?  I've also given consideration to using Borland
> Delphi and the Interbase engine.

> For larger installations, I have an array of database choices that are very
> good.  However, it is important that I don't have to re-write (much) code to
> support the different database engine than what would be used in the single
> user environment.  I've heard many good things about the Delphi/Interbase
> combination, but DAO/Access/Microsoft SQL Server seems to have more press
> (which might imply a better product).

> Can someone please suggest what tools and database products I should consider.
>  I'd like to hear the pros/cons of each.

> Thanks in advance,
> Paul

> --
> // Paul E. Jones
> // pau...@acm.org * http://members.iglou.com/paulej/
> // PGP public key available by e-mail or my WWW page
> // Key fingerprint =  28 02 6D 1F 20 AE 9F 82  43 02 DD 02 0C 00 3C 65you might look in on Pick Systems web page and check out thier new product D3 it should

provide the scalability you want and while i'm not familiar with this release i have
used an older version that has satisfied me very much. until a year ago i ran 17
terminals(not pcs)/printers on a 286-12/640k 40meg drive and had what i considered good
to excellent response time with all the inventory and sales data for 3 years of our
business. Pick is at www.picksys.com in addition if what i read in this group is true
programing/ad hoc reporting/ and scripting and a host of other included features are far
easier to understand and use.

Re:Please recommend an approach to developing scalable database applications


Use the Local Interbase Server which ships with Delphi Developer & C/S
Editions for development.  The Interbase Server 2-license package is under
$500, when you go to production.  Interbase Server should be scalable to
at least 30 users, and it supports NT and 95 for the server OS.  Also, the
data formats are supposedly the same for all versions of Interbase.  This
means you can just copy your database file from development to production
to large-scale production.

Access will {*word*99} out after about 10 users with a decent-sized dataset (so
will Paradox and other file-based databases).  SQL Server is $expensive$,
although it does come with pretty good tools.  Also, their data formats
are not the same, and it will take much more effort if you decide to scale
up your product.

Eric, I don't know where you have been surfing on the internet, but Delphi
components are VERY common.  Even more than that, most are free or
shareware.  Just about anyone can code a new VCL component (with a little
practice), but it takes some serious work to code a VBX.  And they compile
into your exe, so you don't have to worry about redistributing different
versions of VBX's.

Paul, I feel that if you want to deliver an easily scaled and inexpensive
application, you should go with InterBase/Delphi.  Now don't get me wrong,
I am indeed a Microsoft fan.  However, as far as programming tools go,
they can't touch the extensibility, speed, and power of Delphi.

Quote
> elync...@atl.mindspring.com (Eric {*word*182}) wrote in article

<4s9fmd$1...@mule1.mindspring.com>...
Quote
> pau...@acm.org (Paul E. Jones) wrote:

> >Hello Everyone,

> >I am looking into developing some database applications that will run
on
> >Windows95/NT.  These applications may possibly run on a single PC used
by a
> >single person, or might run on multiple PCs with as many as 30 people
accessing
> >the same data.

> >My goal is two fold:
> >  1) To provide a product with a small price tag to the small users
> >  2) Build applications I can easily scale from 1 to 30 users

> If you know you're never going to have any more than 30 users, I'd use
> VB4 over Access 7. If you're going to get much bigger than that, I'd
> go to SQL Server.

> Regarding Delphi, it depends on what functionality you're planning on
> having. Delphi is a great product, but there aren't very many custom
> controls on the market for it, so if you want to make it do anything
> out of the ordinary, I'd stick to the Microsoft line.

> By the way, I'd use ODBC to connect to Access just in case you decided
> later you wanted to go to 50-100 users-then you would want to use SQL
> Server. Take a foo's advice, though: if you're married to 16 bit,
> DON'T use VB4, use VB3. It's much more reliable.

Re:Please recommend an approach to developing scalable database applications


You've ignored the possibily of using Access to front-end SQL Server.
This can effectively bypasses Access's network effects.

Quote
sco...@atnet.at wrote:
> The main difference lies in the way of access; while with SQL-server
> you just transfer the query-statement and get a result set in return
> (results in low network traffic) Access still uses DFA (direkt file ccess)
> (which results in high network traffic). This isn't just a theoretically

Re:Please recommend an approach to developing scalable database applications


In article <4s9fmd$1...@mule1.mindspring.com>
           elync...@atl.mindspring.com "Eric {*word*182}" writes:

Quote
>pau...@acm.org (Paul E. Jones) wrote:

>>Hello Everyone,

>>I am looking into developing some database applications that will run on
>>Windows95/NT.  These applications may possibly run on a single PC used by a
>>single person, or might run on multiple PCs with as many as 30 people
> accessing
>>the same data.

>>My goal is two fold:
>>  1) To provide a product with a small price tag to the small users
>>  2) Build applications I can easily scale from 1 to 30 users

>If you know you're never going to have any more than 30 users, I'd use
>VB4 over Access 7. If you're going to get much bigger than that, I'd
>go to SQL Server.

>Regarding Delphi, it depends on what functionality you're planning on
>having. Delphi is a great product, but there aren't very many custom
>controls on the market for it, so if you want to make it do anything
>out of the ordinary, I'd stick to the Microsoft line.

This is not true. There are a vast number of components (or custom
controls) for Delphi in addition to the ability to add VBX's and OCX's
by use of a wrapper. You can also use Delphi to create your own components
if there is nothing suitable.

Quote
>By the way, I'd use ODBC to connect to Access just in case you decided
>later you wanted to go to 50-100 users-then you would want to use SQL
>Server. Take a foo's advice, though: if you're married to 16 bit,
>DON'T use VB4, use VB3. It's much more reliable.

For easy portability you need to use the same database engine as there
are subtle differences between most of them. With Delphi I would use
Interbase which is available in a single user version as well as the
full client server ones.

--
Donald Oddy
Grove Systems Ltd.                                    0161-224 4465

Re:Please recommend an approach to developing scalable database applications


Quote
sco...@atnet.at wrote:
>    Referring to Paul's request and Eric's comment about this
>    topic i have to add a bit myself now. Having developed client/server
>    VB apps myself (both with Access & SQL-Server) i would recommend
>    using VB & SQL-Server. Access might be great if you are heading for
>    a single user version only but IMHO there are aspects that make
>    Access insufficent for to use it in a true multi-user environment.

You make a good case for SQL Server, but isn't it overkill for a
single user application? SQL Server requires a substantial
investment in hardware, software, and expertise to install,
compared to Access/Jet which can run right on the workstation for
a single user or a small number of users.

I don't think its fair to recommend a server db for a very small
user base without pointing out the additional costs involved. In
the case of SQL Server, you'll need a server machine, a copy of
NT Server, SQL Server, and the required client access licenses,
plus whatever is required for the hardware and software on the
client workstation. You can get back some of the cost with a
moderate user base through reduced need for processing horsepower
on the workstations.

Joe

Never underestimate the power of a WAG.
jgarr...@citilink.com
http://www.citilink.com/~jgarrick

Other Threads