We use an external data dictionary - actually just an ini file containing
all field and index defs and a flag to signal if something has changed.
Every app has code to check this flag and if set compare tables and
restructure/index/copy data as appropriate.
Updates - easy, just send out a new ini file with the update flag set.
Some apps don't even need tables for distribution as it will create them.
This is for Paradox/dBase/DBIsam etc, but parts could be adapted for IB.
Steve
> -----Original Message-----
> From: Donovan J. Edye [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, 3 February 2000 10:14
> To: Multiple recipients of list delphi
> Subject: RE: [DUG]: Interbase Error : What am I missing here???
> (Interbase Newbie)
>
>
> M,
>
> > reads the Paradox tables in and creates a .PAS file that will
> > re-create the entire database structure.
>
> Yeah we do something similair. We have the definitions for
> the database hard
> coded into the app. We then have a specialised TTable
> descendent that uses
> these definitions to maintain table structure and it also
> does all the other
> bits and pieces like table & index validation. This way we
> can be assured
> that the tables are in a consistent state in terms of what the app is
> expecting and that their integrity is valid.
>
> Obviously this is not foolproof as you could lose data if
> someone has v2 and
> then goes back to a v1 exe. Also if there are some default
> values for newly
> created fields then that has to be addressed as well. However
> this does the
> trick most of the time.
>
> > (not looking forward to moving up to client/server ... any ideas?)
>
> This would boild down to some scripts for all the DD stuff I
> would guess.
> Then it was a case of using either a built in data transfer
> mechanism of the
> DBMS or something external like DataPump.....
>
> --------------------------------------------------------------
> ----------
> --Donovan
> Donovan J. Edye [www.edye.wattle.id.au]
> Namadgi Systems, Delphi Developer
> Web: www.namsys.com.au E-Mail: [EMAIL PROTECTED]
> Voice: +61 2 6285-3460 Fax: +61 2 6285-3459
> TVisualBasic = Class(None);
> --------------------------------------------------------------
> ----------
>
>
> > -----Original Message-----
> > From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED]]On
> > Behalf Of Mike Mueller
> > Sent: Thursday, 3 February 2000 07:36
> > To: Multiple recipients of list delphi
> > Subject: RE: [DUG]: Interbase Error : What am I missing here???
> > (Interbase Newbie)
> >
> >
> > my 2c:
> >
> > We version our database structure and use a program called
> "Scanner" that
> > reads the Paradox tables in and creates a .PAS file that will
> > re-create the
> > entire database structure.
> >
> > When the user's database needs to be upgraded the data is
> backed up to a
> > .backup file, the entire database is recreated, and the data is
> > loaded back
> > from the .backup file.
> >
> > This probably doesn't apply to Interbase and so on, where
> you would use
> > scripts instead of BDE calls to create the structure, but perhaps
> > this gives
> > you some ideas. We can't do it manually because our
> product is sold in
> > quantity all around the world & it has to be able to be set up by
> > 'dummies'
> > (not looking forward to moving up to client/server ... any ideas?)
> >
> > This should be the address for the Scanner program...
> > http://www.gold.com.br/~demian/
> >
> > > -----Original Message-----
> > > From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]On
> > Behalf Of Dennis Chuah
> > Sent: Thursday, February 03, 2000 9:14 AM
> > To: Multiple recipients of list delphi
> > Subject: RE: [DUG]: Interbase Error : What am I missing here???
> > (Interbase Newbie)
> >
> >
> > > >Question: What do you do when you have a new release and the
> > > new version
> > > >requires 3 new fields in table XYZ and a new trigger on table ABC?
> > >
> > > I generally do the change on a development database, then run
> > > it as a script on the
> > > live system when I have it all working. OTOH, I generally
> > > dont change a working
> > > database - if I need stuff between releases, I usually have
> > > so many other changes to
> > > make, I have to port the data over by hand (or try and use
> > > the data pump), rather
> > > than just make changes.
> >
> > What if you have more than one client - like several dozen? What
> > do you do
> > then? Will you still use scripts? Or a data pump? If you don't use
> > scripts then, why?
> >
> > Regards,
> > Dennis.
> >
> > ------------------------------------------------------------------
> > ---------
> > New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
> > Website: http://www.delphi.org.nz
>
> ------------------------------------------------------------------
> ---------
> New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
> Website: http://www.delphi.org.nz
>
---------------------------------------------------------------------------
New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
Website: http://www.delphi.org.nz
---------------------------------------------------------------------------
New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
Website: http://www.delphi.org.nz