info@unityjdbc.com | 250-807-9390 | FAQ
UnityJDBC includes comprehensive user documentation and an installation guide.
Multiple Database Query Tutorial: visit a comprehensive tutorial on querying multiple databases, written by Dr. Ramon Lawrence.
How frequently is UnityJDBC released?
UnityJDBC has a major release every 6 months. The latest version 4.1 was released January 4, 2012.
How does support work?
All trial users are entitled to the same unlimited technical support as registered users. A UnityJDBC license includes one year of technical support. Support questions and issues are answered usually within 24-48 hours. Email support questions to support@unityjdbc.com or call 1-250-807-9390.
Is there a limit on the number of databases queried?
There is no limit on the number of databases involved in a single query.
How does SQL dialect translation work?
UnityJDBC contains a database of known functions and their support in each database system. Functions that are supported on a database are executed on the source or translated into a form that the source expects. Functions that are not supported by the database are executed by UnityJDBC's internal database engine.
Is there a performance overhead in using UnityJDBC?
The performance overhead for using UnityJDBC to query a single database has been evaluated by independent university researchers to be insignificant. A query on a single database is validated by UnityJDBC but executed entirely on the data source (assuming the source supports all functions and features requested). UnityJDBC supports PreparedStatements and query plan and result caching to further improve performance.
Why not use linked or remote tables supported by database vendors?
Database vendors provide the ability to link tables from other sources to execute queries with a wide range of performance and costs. UnityJDBC does not require modifications to existing databases which is often a security and administration issue when querying multiple sources. There are no special privileges required beyond the account that is capable of querying the data source. Further, UnityJDBC can be executed on a client or web server and does not put increased load on existing database servers. Finally, the ability to automatically translate SQL dialects makes migrating and supporting multiple databases more efficient which reduces the overall development time and cost of ownership when producing integrated systems and reports. You can write your SQL that will be automatically ported to whatever database system is used.
Do I require the client or server version?
The client version of UnityJDBC is a license for the driver to be used on a single client machine. Each client machine requires a separate license. A server license is used when the driver is used in a server-configuration such as a web server or server supporting multiple front-end clients. Compare a list of features of client and server versions. Site licenses and volume discounts are available. For more information, contact support@unityjdbc.com
UnityJDBC supports any JDBC-accessible data source including full-featured databases such as Oracle, Microsoft SQL Server, PostgreSQL, MySQL, Sybase, and IBM DB2 as well as text-based sources and ODBC sources. Each data source has a different SQL dialect and supports certain functions. Data sources without their own database id inherit features from the SQL99 standard dialect (id=99) and the Common SQL functions dialect (id=1000). A dialect may inherit the features of another dialect then modify or add its own features.
A database identifier is specified in the databaseId tag of the schema file to identify the source dialect. The dialect can also be set in code using the following statements:
SourceDatabase db = con.getDatabase("OrderDB"); // Retrieve the database called OrderDB
db.setDatabaseId(10100000); // Set database dialect for Microsoft SQL Server 2008
See a list of supported database identifiers:
| Database Id | Name | Inherited Dialect |
|---|---|---|
| 99 | SQL99 | |
| 1000 | Common SQL | 99 |
| 10060500 | Microsoft SQL Server 6.5 | 1000 |
| 10070000 | Microsoft SQL Server 7.0 | 10060500 |
| 10080000 | Microsoft SQL Server 2000 | 10070000 |
| 10090000 | Microsoft SQL Server 2005 | 10080000 |
| 10100000 | Microsoft SQL Server 2008 | 10090000 |
| 10100500 | Microsoft SQL Server 2010 | 10100000 |
| 15080000 | Microsoft Access 97 | 1000 |
| 15090000 | Microsoft Access 2000 | 15080000 |
| 15100000 | Microsoft Access 2002 | 15090000 |
| 15110000 | Microsoft Access 2003 | 15100000 |
| 15120000 | Microsoft Access 2007 | 15110000 |
| 15140000 | Microsoft Access 2010 | 15120000 |
| 20080000 | Oracle8i | 1000 |
| 20090000 | Oracle9i | 20080000 |
| 20100000 | Oracle10g | 20090000 |
| 20110000 | Oracle11g | 20100000 |
| 30090000 | IBM DB2 9 | 1000 |
| 30100000 | IBM DB2 10 | 30090000 |
| 40060503 | PostgreSQL 6 | 1000 |
| 40070430 | PostgreSQL 7 | 40060503 |
| 40080408 | PostgreSQL 8 | 40070430 |
| 40090004 | PostgreSQL 9 | 40080408 |
| 50120000 | Teradata 12 | 1000 |
| 50130000 | Teradata 13 | 50120000 |
| 60050091 | MySQL 5.0 | 1000 |
| 60050143 | MySQL 5.1 | 60050091 |
| 60050503 | MySQL 5.5 | 60050143 |
| 70070000 | Sybase SQL Anywhere 7 | 1000 |
| 70080000 | Sybase SQL Anywhere 8 | 70070000 |
| 70090000 | Sybase SQL Anywhere 9 | 70080000 |
| 70100000 | Sybase SQL Anywhere 10 | 70090000 |
| 70110000 | Sybase SQL Anywhere 11 | 70100000 |
| 70120000 | Sybase SQL Anywhere 12 | 70110000 |
| 71150500 | Sybase Adaptive Enterpise Server 15.5 | 1000 |
| 90070000 | Pervasive.SQL 7 | 1000 |
| 90080000 | Pervasive.SQL v8 | 90070000 |
| 90090000 | Pervasive PSQL v9 | 90080000 |
| 90100000 | Pervasive PSQL v10 | 90090000 |
| 90110000 | Pervasive PSQL v11 | 90100000 |
| 92010032 | SQLite v1 | 1000 |
| 92020816 | SQLite v2 | 92010032 |
| 92030706 | SQLite v3 | 92020816 |
| 94020500 | Firebird v2 | 1000 |
| 95010800 | HSQLDB 1.8 | 1000 |
| 95020100 | HSQLDB 2.1 | 95010800 |
| 95020200 | HSQLDB 2.2 | 95020100 |
UnityJDBC automatically translates functions and SQL syntax to the appropriate SQL dialect for the underlying database. Functions are renamed and parameters are re-ordered as required. If a function is not supported by the database, it is executed automatically inside UnityJDBC. Each database system is assigned a database identifier that is specified in the schema file describing the source. The database id allows UnityJDBC to determine which functions are supported on the database and the appropriate mappings.
These links will take you to more in-depth documentation.