|Subject||RE: [IBO] IBO seems slower for some things compared with the BDE|
|Author||Svein Erling Tysvær|
>I would prefer to rewrite most things, but unfortunately it doesntWell, what about upgrading to Firebird 1.5 (currently at release candidate level, planned to be released pretty soon, and all reports are very good) rather than Interbase 7.1 and use the money you save to hire Geoff Worboys (author of IBO Enhanced components, C++ expert) and/or Mark O'Donohue (president of the FirebirdSQL Foundation, knowing a variety of programming tools) to help you out? Helen Borrie is also a wellknown Aussie in this community, but if I recommended her it could delay the book she is writing, something which would make me quite unpopular (at least, I would not appreciate that). Lester lives in England, and I suspect his main contribution will be to convince you that you are on the right track in switching to IBO and share his insights from when he was at your stage.
>appear to be an option. To give you a little history. I work for
>a company that produces a finance system for local government
>councils. They have 27 modules (including administration, property
>etc). They were looking at going from Interbase 5.6 to Interbase
>7.1, and I did up a plan for the migration (taking 18-24 months
>including striping out the BDE). Unfortunately the Boss decided
>that he would like things to go much faster, so would like things
>done in something more like 6 months! I indicated that this is not
>likely, but he wants me to spend some time and investigate it, to
>see if we can get it done.
Myself, I have never used the BDE with Interbase/Firebird, so I do not know the conversion procedure. What I do know, is that converting from the BDE to IBO is one of the things that Jason has put lots of efforts into making very simple and it should be easy to get things working if you just follow the tech info sheet(s) on www.ibobjects.com (at one stage he even considered granting free licenses if your program couldn't be converted in ten minutes (or possibly one hour) - I think that was after him converting one of the sample programs with Delphi to IBO in ten seconds). Then you can simply rewrite those parts that are slower than before, starting with the most important ones. I guess that your boss does not mind if things run annually are not finished until you need them at the end of the financial year, so that it is no disaster if that bit takes 7 or 8 months to get equally fast as the BDE does it (assuming that you switch systems at the beginning of the financial year, you have almost an additional year to get that bit perfected)?
I think I started reading this list shortly before Lester made his first attempt to convert to IBO. He didn't like it and returned to the BDE. Though the BDE couldn't satisfy his high demands, and he was forced back to IBO yet again and got thrilled once he got the hang of IBOs "simplicity" (simplicity in the sense that it does not encourage you to write lots of code) and started rewriting and deleting code rather than add more (Lester, please correct me if I am wrong - my memory typically lasts for a couple of hours and this must have been back in 1999 or something?). He spent quite a while fighting, and probably knows the battle to convince his mind that IBO does things the right way better than anyone else (as well as the joy when his programs all of a sudden started working and he was saved from ditching Interbase).
My guess is that some the slowness you are experiencing either comes from programming practises that are "client/server unfriendly" or from code that was written to overcome some flaws of the BDE. Other than this, I guess loading of information into the schema cache may consume some time as well as using FieldByName('Constant').AsSomething within a loop rather than making use of TIB_Columns or equivalent (and then there are of course lots of other things that I've never encountered). Stick to IBO and learn its "datadriven architecture" and you'll be pleased in the end.
I hope you manage to get this project working,