When the structure of a database changes, such as when a new table or new field is added, the Stonefield Query data dictionary must be updated or the user won't be able to report on the new fields (or worse, if a field was removed or renamed, they'll get an error when they select the old field for a report). Although clicking the Create button and selecting the same data source as you used when you originally added the database to the data dictionary refreshes the data dictionary, it's more convenient to select the Refresh Data Dictionary function instead, since it uses the same data source without prompting you.

To refresh the data dictionary, click the Refresh button () or choose Refresh Data Dictionary from the Objects or shortcut menus. Stonefield Query Studio prompts you for a version number to assign to new tables and fields; leave it blank for no version information. You can also tell Studio to ignore the schema for tables. Otherwise, if the schema for a table changed, it doesn't refresh.

Stonefield Query Studio goes through the data source and refreshes the data dictionary as necessary, adding new tables and fields, removing fields that were deleted, changing data types and column widths, and so forth.

You can also refresh just a single database if you know only that database has changed and don't want to take the time to refresh the entire data dictionary. To refresh a database, choose Refresh Database from the Objects or shortcut menus.

You can also refresh just a single table if you know only that table has changed and don't want to take the time to refresh the entire data dictionary. To refresh a table, choose Refresh Table from the Objects or shortcut menus.

If a table was previously located in one database but now appears in a different database when you refresh the data dictionary, you will receive a warning and are asked whether the table should be moved in the meta data.

If Studio finds a table or a field in the data dictionary that no longer exists in the database, it does one of two things:

  • If you entered a version number for new tables and fields at the start of the refresh process, you are prompted for a "previous version number" to assign to the tables and fields that no longer exist. This allows you to refresh against a new version of the database without removing fields from an older one that are supposed to stay in the data dictionary.

  • If you didn't enter a version number, the tables and fields that no longer exist are removed from the data dictionary.

If you have certain tables you want ignored when you refresh a database, add a [NoRefresh] section to SFQuery.INI with the names of the tables specified on File lines. For example:

[NoRefresh]
file1=MyFirstTable
file2=SomeOtherTable