The CityDesk File Format
CityDesk files are stored in a Microsoft Jet format database. This is the same format as Microsoft Access uses. Therefore, if you open a CityDesk file using Microsoft Access, you can see and manipulate all the data from a CityDesk site. Currently this requires Access 2000.
Before you start working with CityDesk files directly, you should understand that the file format is subject to change in a future version. As new versions of CityDesk come out, they will include new features, and we'll need a way to represent those features in the file, thus requiring a change in the file format. Fog Creek Software Makes No Warrantees, implied or explicit, that the file format will stay the same and indeed it will almost certainly change in the future. So if you want to work directly with CityDesk files you will be limited to version 2.0, and your code may have to change when a future version comes out.
Here are some useful tips to working with the CityDesk database format.
- CityDesk files only contain tables. There are no queries, forms, reports, etc. There are no stored procedures or the equivalent.
- All tables start with the name tbl. Whenever you see a column named ixABC, that indicates a foreign key pointing to a row in tblABC.
- You can open any table in Microsoft in Design Mode to see comments and a description of the meaning of each field.
- tblStructure represents each item in CityDesk's main view.
- tblArticleSet points to sets of articles which are stored in tblArticle. For each language in a multilingual site, there is one tblArticle for each tblArticleSet. (For example, in an English Spanish site, all the common stuff is in tblArticleSet, and all the translated stuff is stored in two rows in tblArticle).
- The database generally uses Unicode format for HTML strings. These are converted to UTF-8 only when the file is written to disk.
- tblVersion indicates the file format version, which is incremented whenever a change is made to the database format. This is how CityDesk knows if it has to upgrade a file.
- When a user deletes something in the user interface, we typically just set the "fDeleted" value in that row to true rather than actually deleting the item. When the user chooses to compact their database we delete all these rows.
CityDesk Home
Fog Creek Home
Email Us