> Rather than have one data module for the entire app I place the MySQL query 
> components on the forms that use 
> the query. This makes the app user-ready sooner and there are no 
> complications with various forms moving the 
> record pointer in a central query/dataset. Also I find each form has a 
> slightly different query requirement anyway, 
> so centralisation is no advantage.
> 
> So the 'egg' is the TMyConnection in the main form and the subsequent 
> 'chickens' are the queries in the rest of the 
> app's forms. As they are necessarily opened after the main for there should 
> not be any sequencing problems.

I think code re-use should be on top when you are coding. If you have several 
apps that connects to the same database, having a datamodule for the 
connection, login checks and general DB functions is a big advantage. If you 
plan to use the same login code on a Web app (web broker, IntraWeb, etc), you 
wont need to duplicate your code, just add it to your project and re-use it.
Putting your DB connection component in your main form forces you to include 
your main form unit in the uses clause of all units, even units that are plain 
classes with no GUI, which I do not see as a good practice (you will have a 
business rules unit which depends on a GUI form). If you need to use this same 
unit in another project, you will need to add your main form of other project 
to your new project or rearrange it.
Also, adding querys to forms should be avoided, in my opinion, as you may need 
the same dataset in another part of your application and you will again 
duplicate code.
You may have a bit extra work at the start, but your code is more reliable and 
maintenance is easier.
Regards
--Jackson                                         
_______________________________________________
NZ Borland Developers Group - Delphi mailing list
Post: [email protected]
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to [email protected] with 
Subject: unsubscribe

Reply via email to