UniverSQL ( http://www.sidespace.com/products/universql/ ) is an ODBC proxy which runs on MicroSoft Windows, and which provides remote access to ODBC data sources that the Windows machine can access. These can include the Jet database engine used by MicroSoft Access, and the MicroSoft SQL server. In principal, it can access any data source for which an Windows ODBC driver is available.
The Rekall UniverSQL driver allows Rekall to connect to the UniverSQL proxy, and hence to access data from the Windows ODBC data source. This could be used, for instance, when migrating from an Access Jet database to a Linux-based database.
Please note that this driver is only available for the Linux builds of Rekall. In addition, it has only been tested against the Jet database. See the note below of table and column information.
There are a number of limitations which are imposed by the features available from the UniverSQL proxy.
Firstly, UniverSQL is not an ODBC-ODBC bridge, so the Rekall driver is limited to database operations that can be passed to the underlying ODBC driver as SQL commands and queries. Hence, data manipulation operations (select, update, etc.) are supported, but there is no access to the ODBC functions which provide detailed database information (such as table and column details).
Although table creation and deletion, etc., can be handled, these are not currently implemented. We feel that if you do need to perform these types of operation, then UniverSQL is not really the right way to go.
The client-proxy server communication protocol is XML based, so there is a significant overhead. We do not recommend the use of the Rekall UniverSQL driver for repeated large data transfers. One-off large transfers should be fine (for instance when transferring data from one database to another), abliet a little slot, but doing this repeatedly will probably be restrictive.
Rekall needs to know what tables are present in a database, and the details of the columns in those tables. Since the UniverSQL proxy does not provide access to the ODBC calls which provide that information, the Rekall UniverSQL driver has to fall back on one of two alternative routes.
Firstly, the driver can retrieve information from the MSysObjects table in the Jet database. This table is not normally application readable, any you will have to change the appropriate setting so that is can be read. I order to obtain table column information, Rekall has to do an SQL select query on the table (constructed so that no data is actually returned), and then extract column information from the results. This information is some limited - only the column name, type and length are available.
Alternatively, the Jet database TblDoc2K.mdb which is supplied with the driver can be imported into your database (you may need to install some ADO libraries as well). This comprises a single table __RekallTables, a query and a form. Executing the form and clicking the Describe button extracts table information and stores it in __RekallTables. The driver detects the presence of this table and uses the its contents. This provides more table information, at the cost of needing to rerun the form if you make any local table changes.