Replacing Delphi's Data Dictionary

I am writing a 3-tier manufacturing/distribution application in Delphi
3 and I am trying to come up with a solution to a problem with the data
dictionary.  Namely, if you change a field attribute, such as the length
of the part number for example, the change will not be reflected in any
part number field already instantiated.  (eg. clients can vary from having
4 to more than 25 characters in their part numbers and I don't want to
supply one long field for all clients.  Also there will be additional
field attributes that I need now and maybe more in the future.)

Here is my proposed solution:
1. create a TFieldAttr component which contains public properties for all
the attributes I need for all data fields
2. create a TStringField descendant (TMyStringFld) which links to
TFieldAttr (likewise for TCurrencyField, TBooleanField, etc)
3. for the part number example, create a TPartNoFld descended from
TMyStringFld and set its default attribute properties accordingly (all
basic field types in the database would have their own T...Fld component
in the same fashion)
4. once all the database field components were created I would copy them
into separate client packages where any customized field attributes could
be set and the current values be automatically seen throughout the
application.

In my 3-tier architecture, this dictionary replacement would reside in the
middle 'business rules' layer which is implemented using ActiveX.

Questions:
1. Has anyone done this kind of thing or something else to work around the
data dictionary?
2. Can anyone think of reasons not to do this; does this plan impose other
limits/incompatibilities on the application?

Thanks in advance
Darren W. Clarke

-------------------==== Posted via Deja News ====-----------------------
      http://www.dejanews.com/     Search, Read, Post to Usenet