Subject RE: [firebird-support] Re: Any experiences moving from BDE (D7) to IBObjects & FB 1.5.2
Author Kevin Day Programming
Hello there,

I have used both ibojects and fibplus. I think the claim of Jason's
regarding the speed of conversion from the BDE refers to a situation where
the application is already built with a firebird/interbase backup, but
accessing it via the BDE. This means that the program has to be already
client server designed.

In my case however I was converting a large Paradox application. So you
have to things here to contend, semi-redesigning and refractoring the
application to a full client-server system as well as changing all the data
access components.


My first big mistake was attempt a quick and dirty conversion using the ibo
data components from ibobjects and leave fairly much everything as is
including pessimistic locking (gasp!!). What I ended up is something that
works if the users are prepared to have long naps in the course of there
work while they wait for the system.
While this system is working now with much work, sweat and tears of the
mostly used aspects of the system, there is still work to be done with
moving logic to the server and using queries instead of tables (tibotable -
equivalent of TTable).

I am doing the exercise again for a different customer. This time I am
using FIBPlus. This time also instead of trying to a big quick, find and
replace type of conversion. I am converting both application and database
piece by piece, functional area by functional area with FIB+. Fib plus
forces you to use queries instead of ibotables (which are ok for small
tables but terrible for large tables which would be the same if you
converted everything to work of queries but with "select * from xxx" and no
where clause). I also like the ability that FIB+ has to have every dataset
work with 2 transactions, one for selecting which can be read-only and the
other, the write transaction that the dataset actually uses for updating.

This 2nd application conversion is not yet completed and hasn't had true
load testing yet. But with what I have done, it definitely seems to be much
faster than with IBO. It doesn't seem to have the same complexity as ibo
but then it isn't trying to be a bde replacement, just an efficient
interface to firebird/interbase. I use the fibdataset components where I
need to bind to data-aware controls but use the lightweight Tfibquery for
everything else that needs only to have a unidirectional cursor. FiB plus
can emulate pessimistic locking also but I am doing away with that totally.
I am using another mechanism using events to alert users when others have
changed a master record that they are currently editing. Pessimistic
locking holds up the Oldest Active Transaction from moving forward in the
dataset. Anywhere that balances where maintained in master tables (like
debtors balances for example - it is an accounting system) by the client in
the paradox app, are now being converted to be calculated from within views.
This means database transactional locking of master tables as a result of
financial transactions being posted are eliminated.

I hope this helps.

Regards,
Kevin.


> -----Original Message-----
> From: firebird-support@yahoogroups.com
> [mailto:firebird-support@yahoogroups.com]On Behalf Of
> christophermarkstrauss
> Sent: Saturday, 11 June 2005 12:47 AM
> To: firebird-support@yahoogroups.com
> Subject: [firebird-support] Re: Any experiences moving from BDE (D7) to
> IBObjects & FB 1.5.2
>
>
> Hi Anton
> i have just converted a BDE app to firebird. i did not look at
> IBObjects as i came across Fib first and i am totally satisfied
> speed is the nicest surprise along with total stability
> Using Fib you can setup your data module as you would for a paradox
> etc. database and then you will need to access the SQL property of the
> TpFibDataSet and select the table and select the generate buttons and
> all the Sql is generated for you, as all the data access is done via
> Sql directly. you will however still be using the
> Datamodule.Table.ApplyUpdates etc. so changes are kept to a minimum
> You will need to understand the transaction states as they are
> controlled by TpFibTransactions and you can set up a different one per
> table or use one for all tables depending on your need. You call the
> Table or databases ApplyUpdates but the TpFibTransactions.Commit. This
> gives you great flexibility.
>
> i hope this helps
>
> --- In firebird-support@yahoogroups.com, "rekkod" <anton@d...> wrote:
> > Hi All
> >
> > Is there anybody that can maybe share their experiences moving from
> the
> > BDE (Delphi 7) to IBObjects (or FIBPlus).
> >
> > What is the best to move to IBObjects or FIBplus (for a Multi-User,
> and
> > highly concurrent and interactive system).
> >
> > Any nice suprises?
> >
> > Thanks
> > Anton
>
>
>
>
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>
> Visit http://firebird.sourceforge.net and click the Resources item
> on the main (top) menu. Try Knowledgebase and FAQ links !
>
> Also search the knowledgebases at http://www.ibphoenix.com
>
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>
> Yahoo! Groups Links
>
>
>
>
>
>