Subject Re: [IBO] Using/Updating SchemaCacheDir
Author Helen Borrie
At 11:28 PM 28-09-02 +0000, you wrote:
>Hi All,
>I'm new to IBO and Firebird. I am converting a ton of Delphi 5 / Local
>BDE code to IBO / Firebird. I need to use the SchemaCacheDir due to the
>large number of tables used by this application suite. (It takes about 3
>minutes to update the cache.) I just have a few questions:
>1) Can I use a shared net directory for the cache? (i.e. so that only
>the first workstation after a DDL update needs to update the cache, and
>the rest can use the cache from the shared drive.)

I haven't done it; but I think it would be worth a try.

>2) How do I update the IBO$SCHEMA_VERSION table? Do I just increment the
>version number of the appropriate item (i.e. TableNames, TableFields,
>IndexDefs, etc.) whenever I create/update a new table? Or does IBO take
>care of this done automatically?

In the normal run of things, the IB_Connection updates the version table
itself when you do a schema change with IB_SQL or another app using IBO
components. If you set the SchemaCacheDir in IB_SQL before you connect to
begin DDL changes, IB_SQL should update the cache tables for you inside
that session....I've never updated the version table
connection the connection object queries the version table and compares it
with the version in the cache. It will refresh the cache if it needs to.

If you have done a lot of changes, you might find it quicker just to delete
all of the files from the cache and let the first connection after your
changes take care of rebuilding the cache. I can't really make a
categorical recommendation though - it will depend on lots of things like
network speed and the complexity of your schema.

p.s. you may call me Helen :-)