bde vs firebird vs ???

bde vs firebird vs ???

Post by Jo » Wed, 23 Jun 2004 05:09:46


Hi

Just to say thanks to those people who have helped me out the last few days.

I was looking into firebird as some people suggested that I would be better
to use it rather than the bde and paradox tables. It seemed rather
complicated!

My app needs to be installed by non-techy people on their home machines, as
well as by technicians on networks. The app will probably have 3 people or
less using it at one time. It is VERY VERY unlikely that they would try and
access the same record at the same time. At most it might be accessed by up
to 10 people at one time.

Is a client/server db really necessary? If it is, how easy is it to use
something like inno setup/ installshield to create setup programs that
include the client server db?

Thanks

Jo
 
 
 

bde vs firebird vs ???

Post by pr » Wed, 23 Jun 2004 14:55:58


: Hi
:
: Just to say thanks to those people who have helped me out the last few
days.
:
: I was looking into firebird as some people suggested that I would be
better
: to use it rather than the bde and paradox tables. It seemed rather
: complicated!

It does at the beginning. Take your time and persist with it. use it
in autocommit mode until you get the hang of transactions. It will
then work more or less like the BDE.

: My app needs to be installed by non-techy people on their home machines,
as
: well as by technicians on networks. The app will probably have 3 people or
: less using it at one time. It is VERY VERY unlikely that they would try
and
: access the same record at the same time. At most it might be accessed by
up
: to 10 people at one time.

Firebird is certainly easier to install than the BDE on a network. You
want to give a non-technical person grey hairs, you want to sort out
all the network problems on your own, getting grey hairs yourself, then
use the BDE.
Very very unlikely only means that it will happen within the first
hour instead of the first minute. If is it possible at all you have to
take care of that situation.

: Is a client/server db really necessary? If it is, how easy is it to use
: something like inno setup/ installshield to create setup programs that
: include the client server db?

C/S is not necessary, but why use a deprecated solution if you
can have a nifty one, which will actually work. Use Firebird, and
to start with use it as you would the BDE.

PR

 
 
 

bde vs firebird vs ???

Post by Markku Nev » Wed, 23 Jun 2004 17:10:50


You don't have to worry about that, if they are accessing the same record
or not. All the current database engines do all that work for you, both
the traditional databases and Client/Server databases.


You first said 3 and now 10 simultaneous users?? There is a good chance
people will try to read and write the same records, but as said, the
DB engine will handle it.


No. The simplest system to deploy could be one that has all the needed
database stuff compiled inside your EXE. Like DBISAM for example, that
currently has some $250 price tag on it.


If you intend to write some 3..10 user DB application, then we are talking
about something like 2..6 months, maybe 12 months of development time.

Learning to write good, reliable Inno Setup scripts that also installs
the Server side software may take you some 1..2 working days. But that
is nothing, compared to the time the whole project will take.

Markku Nevalainen
 
 
 

bde vs firebird vs ???

Post by pr » Thu, 24 Jun 2004 13:20:38


: >
: > The app will probably have 3 people or
: > less using it at one time. It is VERY VERY unlikely that they would try
and
: > access the same record at the same time.
:
: You don't have to worry about that, if they are accessing the same record
: or not. All the current database engines do all that work for you, both
: the traditional databases and Client/Server databases.

Of course he has to worry about it. The db engine will
simply say "record locked" but you then have to decide
how to handle this condition, wait and let the user retry,
wait and try again after some time delay, give the user
the possibility to abort if the lock persist (user locking
the record gone out to lunch), or automatically abort?
What are you going to to if the lock is encountered
halfway through an update?
Also, traditional databases and Client/Server databases
usually handle the locked condition in different ways,
the former by pessimistic locking, the latter by optimistic
locking. They need different treatment.
So there is *plenty* to worry about if you want to write
a robust and user-friendly multi-user application.

PR
 
 
 

bde vs firebird vs ???

Post by Markku Nev » Thu, 24 Jun 2004 18:17:59


But why worry, when that is so common situation when two or more people
do try to edit the same record at the same time? I do not worry about those
cases, I just check that the situation gets handled in some way.


Usually most DB engines, even with their default settings, do try and wait
maybe some 3..10 seconds, if the other user's record lock will be released
during that time. If it does not get released, error message will be shown.
Then it's up to the developer, how he decides to handle those cases.


It depends on the engine. The engine may automatically roll back this
un-succesfull update, and show an error message. Then it is up to the
developer if he puts a button on screen where user can try to re-send
the record or not.
DB engines do not know how to handle broken hard disk, or fragmented
FAT allocation system. But these cases can happen also on single user
applications.


Again it depends on the engine. But many C/S engines let you freely
choose if you want choose to use pessimistic or opportunistic locking.
You can choose to put Edit-lock (pessimistic locking) Post-lock (optimistic
locking) on records also on C/S databases.


Yes, but 'fixing things' and doing decisions, that's just our every
day work. Why worry so much? Too much worrying may give you gastric ulcer,
or some other *** , middle aged programmer illness:)

Markku Nevalainen