Database driver specification (driver)

In database connection parameters, the driver parameter identifies the type of database driver to be used.

The driver must correspond to the database client software.
Important: Pay attention to the binary architecture of the database client software: Genero runtime system and database client binaries must match. For example, a 32 bit Oracle client can not be used with a Genero 64 bit runtime system.

We distinguish two sort of database driver names:

A driver name "dbmxxx" identifies a generic driver name for the database server identified by the code xxx.

For example, in FGLPROFILE, to define the database driver for the Oracle OCI client (code "ora"), use the name "dbmora":

dbi.database.stores.driver = "dbmora"

For convenience, it is also possible to specify a long name (alias) such as "oracle" or "sqlserver", as defined in the database driver table below.

Use generic named drivers (with the latest database client software available on the platform), instead of version-stamped driver names. Use the version-stamped driver name only if the most recent database client software is not available on the platform.

Check for library dependency on your system, to identify the database client library required by the driver with the generic name. The driver definition table below lists the driver names for each supported database client types and versions. For example, on Linux platform, use the ldd command:
$ ldd $FGLDIR/dbdrivers/dbmmys.so
      ...
      libmysqlclient.so.18 => ...
      ...

Drivers with generic name are compatible with the latest database client version available on the platform. Thus, according to the platform, the same generic driver name can refer for different database client software. For example, on a platform where only MySQL 5.1 is available, dbmmys will match the MySQL 5.1 client, while on a more recent platform, dbmmys will match the MySQL 5.5 client.

To limit the number of drivers, if the database client software allows it, the drivers are build with the oldest database client version that is compatible with the latest available database client versions. For example, the dbmmys_5_5 driver is build with the MySQL Client 5.5, but is compatible with the MySQL 5.6 client library.

Note that given driver (combined with the corresponding database client software) can connect to a database server of an older version, if the database vendor client/server protocol supports the combination. For example, you can use an Oracle client version 12c to connect to an Oracle 11g server.

A default driver can be specified with the dbi.default.driver FGLPROFILE entry. This driver will be used for all database connections that do not specify the driver explicitely:

dbi.default.driver = "dbmora"

If this entry is not defined, and if no driver parameter is specified for the data source, the driver name defaults to dbmdefault. This default driver is a copy of the database driver that was chosen during installation.

Table 1. Database driver names according to database client type
Name with db client version Generic name / alias Code Database client software version UNIX™ shared objects Microsoft™ Windows™ DLLs Mac OS X™ dynamic libraries
dbmase_16 dbmase / sybase_ase ase Sybase ASE Open Client Library 16.x libsybct[64].so, libsybcs[64].so libsybct[64].dll, libsybcs[64].dll N/A
dbmdb2_10 dbmdb2 / db2 db2 IBM® DB2® UDB Client 10.x libdb2.so.1 db2cli.dll N/A
dbmesm_1 dbmesm / easysoft_sqlserver esm EasySoft ODBC for SQL Server libessqlsrv.so N/A N/A
dbmifx_9 dbmifx / informix ifx IBM Informix® CSDK 2.80 and higher libifsql.so, libifasf.so, libifgen.so, libifos.so, libifgls.so, libifglx.so isqlt09a.dll libifsql.dylib, libifasf.dylib, libifgen.dylib, libifos.dylib, libifgls.dylib, libifglx.dylib
dbmmys_5_1   mys MySQL Client 5.1.x libmysqlclient.so.16 libmysql.dll libmysqlclient.16.dylib
dbmmys_5_5 dbmmys / mysql mys MySQL Client 5.5.x and higher / MariaDB 10.x and higher libmysqlclient.so.18 libmysql.dll libmysqlclient.18.dylib
dbmntz_6 dbmntz / netezza ntz IBM Netezza® (6.x) libnzodbc.so odbc32.dll N/A
dbmodc_3 dbmodc / odbc odc Generic ODBC (ODBC 3.x) libodbc.so odbc32.dll libodbc.dylib
dbmora_11   ora OCI Client V11 libclntsh.so.11.1 oci.dll N/A
dbmora_12 dbmora / oracle ora OCI Client V12 libclntsh.so.12.1 oci.dll N/A
dbmpgs_9 dbmpgs / postgresql pgs PostgreSQL Client 9.x libpq.so.5 libpq.dll libpq.5.dylib
dbmsnc_9   snc SQL Server Native client 2005 (V9) N/A odbc32.dll / SQLNCLI.DLL N/A
dbmsnc_10   snc SQL Server Native client 2008 (V10) N/A odbc32.dll / SQLNCLI10.DLL N/A
dbmsnc_11 dbmsnc / sqlserver snc SQL Server Native Client 2012 (V11) N/A odbc32.dll / SQLNCLI11.DLL N/A
dbmftm_0 dbmftm / freetds_sqlserver ftm FreeTDS ODBC version 0.82 to 0.95 libtdsodbc.so.0 N/A N/A
dbmsqt_3 dbmsqt / sqlite sqt SQLite 3.x libsqlite3.so.0 N/A (statically linked) libsqlite3.dylib