Normally, running Rekall and opening a database will display the server dialog. This lists the server databases which the Rekall database accesses, and allows you to set the information needed to access them, such as location, usernames and passwords. Depending on the actual server database the exact interpretation of the values may vary a bit.
In MDI mode, the dialog window appears within the main MDI window; in SDI mode the top-level window is filled by the same dialog. In this manual, all the screenshots are takes from Rekall running in SDI mode (simply because it is slightly easier to generate them in this way).
The screenshot shows this dialog for a simple demonstration database. The list on the left has entries for the various Rekall components (servers, forms, reports and so forth). The area to the right shows the server connections for the database, in this case a single XBase connection where the forms, etc., are stored in the file system (more on this later).
Selecting a server and clicking the Edit button (or double-clicking the server) brings up a dialog in which the connection details can be set. Note that entries that are not relevant to the particular server database are greyed out.
As well as the actual server database settings, there are two additional options. If Disabled is set, then Rekall will not access that entry; this can be useful, for instance, if a remote database is currently not available. The AutoStart option can be selected in order that a form (must be called MainForm) will automatically be opened when Rekall opens this database.
The other tabs contain more advanced settings, which are mentioned below, and possibly server database specific settings.
Clicking entries in the left-hand side displays information about the corresponding Rekall components. Clicking Servers shows this, the server dialog; the second shows tables in the server databases, and so on.
Advanced SettingsThe Advanced button displays a pop-up dialog which contains more advanced settings. This popup will show one tab (the left-most) which contains common settings which apply to Rekall itself, and possibly other tabs which contain settings specific to the server database. The common settings are listed below; see the database drivers appendix for details of the server database specific settings.
Rekall makes use of some private tables to store information. By default, if it opens a server database and these tables do not exist, it will prompt to ask whether they should be created. Setting this option stops this check and is useful, for instance, if you have read-only access to a server database, or only wish to view tables.
Unless this option is set, Rekall will not list any tables which it creates for its own use.
In the normal course of operation, Rekall can quite often need information about a table (column names, types and so forth). By default, it will retrieve this information from the server database whenever it it needed. This has the advantage that such information is always up to date, so that if someone else changes a table, Rekall will see the changes the next time it needs the information.
However, this may take some time on a heavily loaded or remote server database. Also, if the database design is fixed, then this table information will not change. Setting this option will tell Rekall to assume that table details do not change, and the information is cached.
Note that if you are the only person who is changing table details (adding or removing columns, changing column types, and the like) then it is safe to set this option, since Rekall keeps track of when it itself makes such a change.
If you leave the username or password field empty, Rekall will prompt for them when they are required to connect to a server database. However, in some cases, thay may not be needed. In this case, setting this option stops Rekall from displaying an unneccessary (and irritating) dialog.
Some server databases allow the user to update primary key values, while others do not. Where possible, the Rekall database drivers detect columns in tables, including primary key columns, which cannot be updated. However, it is sometimes useful to be able to prevent update of primary keys even where the server database does allow this. Setting this option will force Rekall to treat all primary columns as read-only, ie., as not updatable.
Appendix A discusses issues related to primary and unique key columns in tables and their affect on updating and inserting table data. Please see this appendix for details of this option.
Setting this option should prevent Rekall from performing any database operations which change data. Note that this is not perfect, for instance is the database supports rules or triggers, then a select on a table could cause an update, about which Rekall would be blissfully unaware!
By default, if a font is not specified (for instance, for a control in a form), Rekall will use the default application font, which will be the default font on your system. This can be overridden with this setting. It may be useful if you share Rekall forms between machines or users who have selected different default fonts.
When Rekall opens a database, it checks to see if there is a form called MainForm, and if so opens that form automatically. MainForm can be changed to another name via this setting.
By default, Rekall assumes that text data is stored in the server database using UTF-8 (unicode) encoding. It will retrieve and interpret textual data assuming this encoding, and will similarly store data. However, if you know or wish Rekall to use another encoding, then it can be set here. The available encodings are those handed by QT.
Note that specific server database drivers may detect the encoding from the server database where the server database itself supports encodings. This setting will override the server database setting.
This setting similarly controls the encoding used when storing objects, such as forms and reports, in the database.
This setting (which is only available in the Linux versions of Rekall) allows the use of SSH tunneling where the server database is accessed over a TCP/IP connection. See chapter 14 for details.
Arbitrary SQL can be entered here and will be executed whenever Rekall opens a connection to the database. You can enter multiple queries, separated by semi-colons. If any query fails then an error will be reported and the connection will be closed.
This facility may be useful, for example, to log connections to a table in the database.