Documentation and Support


Resources

UnityJDBC includes comprehensive user documentation and an installation guide.

  1. Tutorials
  2. Setup Videos
  3. Frequently Asked Questions
  4. User Documentation
  5. Supported Databases
  6. Function Translation
  7. Bug Report

Tutorials

Multiple Database Query Tutorial: visit a comprehensive tutorial on querying multiple databases, written by Dr. Ramon Lawrence.


Setup Videos

Get Adobe Flash player

UnityJDBC - Setup in 5 minutes

Get Adobe Flash player

UnityJDBC - Building Sources and Querying using Sample Data

Get Adobe Flash player

UnityJDBC - Allows Multiple Data Source Reports in Jasper Reports


Frequently Asked Questions

  1. How frequently is UnityJDBC released?

    UnityJDBC has a major release every 6 months. The latest version 4.1 was released January 4, 2012.

  2. 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.

  3. Is there a limit on the number of databases queried?

    There is no limit on the number of databases involved in a single query.

  4. 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.

  5. 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.

  6. 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.

  7. 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


User Documentation

UnityJDBC documentation is available in PDF format.


Supported Databases

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 Identifiers

    Database IdNameInherited Dialect
    99SQL99
    1000Common SQL99
    10060500Microsoft SQL Server 6.51000
    10070000Microsoft SQL Server 7.010060500
    10080000Microsoft SQL Server 200010070000
    10090000Microsoft SQL Server 200510080000
    10100000Microsoft SQL Server 200810090000
    10100500Microsoft SQL Server 201010100000
    15080000Microsoft Access 971000
    15090000Microsoft Access 200015080000
    15100000Microsoft Access 200215090000
    15110000Microsoft Access 200315100000
    15120000Microsoft Access 200715110000
    15140000Microsoft Access 201015120000
    20080000Oracle8i1000
    20090000Oracle9i20080000
    20100000Oracle10g20090000
    20110000Oracle11g20100000
    30090000IBM DB2 91000
    30100000IBM DB2 1030090000
    40060503PostgreSQL 61000
    40070430PostgreSQL 740060503
    40080408PostgreSQL 840070430
    40090004PostgreSQL 940080408
    50120000Teradata 121000
    50130000Teradata 1350120000
    60050091MySQL 5.01000
    60050143MySQL 5.160050091
    60050503MySQL 5.560050143
    70070000Sybase SQL Anywhere 71000
    70080000Sybase SQL Anywhere 870070000
    70090000Sybase SQL Anywhere 970080000
    70100000Sybase SQL Anywhere 1070090000
    70110000Sybase SQL Anywhere 1170100000
    70120000Sybase SQL Anywhere 1270110000
    71150500Sybase Adaptive Enterpise Server 15.51000
    90070000Pervasive.SQL 71000
    90080000Pervasive.SQL v890070000
    90090000Pervasive PSQL v990080000
    90100000Pervasive PSQL v1090090000
    90110000Pervasive PSQL v1190100000
    92010032SQLite v11000
    92020816SQLite v292010032
    92030706SQLite v392020816
    94020500Firebird v21000
    95010800HSQLDB 1.81000
    95020100HSQLDB 2.195010800
    95020200HSQLDB 2.295020100

Functions and Function Translation

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.

Function Categories

These links will take you to more in-depth documentation.


Bug Report

Report bugs to support@unityjdbc.com.