Viewing Tables

Selecting the Tables tab presents a view the tables in each server database. The view shows one entry for each server database, and possibly one for the !Files entry; expanding the tree for a server database shows all the tables in that database.

The first time you expand the tree for a particular server database (assuming that Rekall has not accessed the server database before), you will be prompted to create an objects table and a design dictionary. The first is used to store forms, reports, and the like, in the database, rather than in the file system. The second is used to store additional table information (for instance, default field values). You do not need to create these for Rekall to function, but if you do not then forms, etc., will not be available. This overview assumes that both are available.

Expanding the table itself shows a summary of the columns in a table. This cannot be used to modify the table structure, but can be useful if you need to remind yourself of the details of a table; the column names and sizes, plus some basic properties, are shown. The next screenshot shows this; the branch for the Orders MySQL server database has been expanded, and within that the Client table. One thing to note is the Primary Key type; Rekall has an idea of a preferred column type to use for a primary key, and if a column fits its idea, then it is shown as such. Of course, this may not be your preferred type, and you can create primary key columns as you see fit.

Double-clicking on a table will show the table in data view, that is, it will show all the data in the table. You can also get to data view by right-clicking on the table and selecting the appropriate entry. The screenshot below shows table data view for the Orders table.

This should mostly be fairly obvious. Table data is shown in a grid, where columns correspond to columns in the table (and are labelled with the column name), and rows to rows of data from the table. The toolbar has buttons for record navigation (first record, previous record, ...), insertion and deletion, and searching. You can change column widths, and alter the order (this is the display order, and does not change the table itself).

Values can be changed as you'd expect by editing the fields (or changing the selection in a combobox). Navigation between fields within a row can be done from the keyboard using the Enter and Tab keys (and Shift-Tab to move backwards); navigation between rows can similarly be accomplished with the Up and Down Cursor keys (and Ctrl-Up and Ctrl-Down move to the first or last record). Changes are saved whenever you change rows (or by using Ctrl-Enter).

A few things are worth pointing out here. All values are shown as simple text fields, but you can specify (via the design dictionary) that a column logically links to some other table, and that some value from the other table should be displayed in that column. In the Orders table, the ClientID and ProductID columns are linked to the Client and Product tables respectively, and show the client name or product description. If you click in such a column then the text field is replaced by a combobox which shows the possible values.

By default, text is displayed as it is returned from the server database, but specific formats can be given. Here, the date fields are formated as dd-mmm-yy. ( Rekall can display dates and times in any format supported by the C library strftime routine, and can also decode dates and times in most formats. )

The left-most column shows row numbers, and will also display a markers for the current row. If you click in the left-column then the entire row is selected; you can also use the standard ctrl-click and shift-click methods to select multiple rows, which can then all be deleted at once.

And if you have a table with lots of columns, you can show the columns in lexical order by selecting Order Columns from the View menu (and switch back to table column order by repeating).