Open Database Connectivity

Open Database Connectivity, commonly ODBC, is an open specification for providing application developers with a predictable API with which to access Data Sources. 
An ODBC
engine
needs
drivers
to be able to interact with
databases
.
ODBC engines
You have two options to chose from:
unixODBC
and
iODBC
. Apparently unixODBC is more widely supported. This document shows how to set up unixODBC. First to access your database on your localhost and then extends the steps to configure MySQL to allow remote access through ODBC.
Additionally you can choose from various
Devart ODBC drivers
for SQL Server, Oracle, MySQL, SQLite, Firebird, PostgreSQL, Interbase.
Installation
Install
the
unixodbc
package.
Configuration
Driver are declared in
/etc/odbcinst.ini
, and connections in
/etc/odbc.ini
. More instruction at each driver section.
Drivers
FreeTDS
FreeTDS
is a set of libraries for Unix and Linux that allows your programs to natively talk to Microsoft SQL Server and Sybase databases. Technically speaking, FreeTDS is an open source implementation of the TDS (Tabular Data Stream) protocol used by these databases for their own clients.
Installation
Install
the
freetds
package.
Configuration
/etc/odbcinst.ini
[FreeTDS]
Driver          = /usr/lib/libtdsodbc.so
UsageCount      = 1
The configuration file of FreeTDS itself is
/etc/freetds/freetds.conf
.
Myodbc
Myodbc is ODBC driver/connector for mariadb.
Installation
Install the
mariadb-connector-odbc
AUR
package.
Configuration
Starting with
odbcinst.ini
, which lists all installed drivers.
/etc/odbcinst.ini
[MySQL]
Description     = ODBC Driver for MySQL
Driver          = /usr/lib/libmaodbc.so
FileUsage       = 1
SQLite
sqliteodbc is ODBC driver/connector for sqlite.
Installation
Install the
sqliteodbc
AUR
package.
Configuration
Starting with
odbcinst.ini
, which lists all installed drivers.
/etc/odbcinst.ini
[SQLite3]
Description=SQLite ODBC Driver
Driver=/usr/lib/libsqlite3odbc.so
Setup=/usr/lib/libsqlite3odbc.so
Threading=2
UsageCount=1
PostgreSQL
psqlodbc is ODBC driver/connector for PostgreSQL.
Installation
Install the
psqlodbc
AUR
package.
Configuration
Starting with
odbcinst.ini
, which lists all installed drivers.
/etc/odbcinst.ini
[postgresql]
Description=General ODBC for PostgreSQL 
Driver=/usr/lib/psqlodbca.so 
Setup=/usr/lib/psqlodbcw.so
Threading=2
FileUsage=1
Databases
Microsoft SQL Server 2000
/etc/odbc.ini
[server_name]
Driver      = FreeTDS
#Trace       = Yes
#TraceFile   = /tmp/odbc
Servername  = server_name
Database    = database_name
/etc/freetds/freetds.conf
[server_name]
host = 192.168.0.2 # Host name or IP address.
port = 1433 # Default port.
tds version = 7.1
client charset = UTF-8
SQL Server ODBC driver connection strings and
configuration guide
Mariadb
Set up your data sources in
/etc/odbc.ini
(system wide) or
~/.odbc.ini
(current user). If a data source is defined in both of these files, the one in your home directory take precedence.
[MySQL-test]
Description     = MySQL database test
Driver          = MySQL
Server          = localhost
Database        = test
Port            = 3306
Socket          = /var/run/mysqld/mysqld.sock
Option          =
Stmt            =
MariaDB ODBC driver connection strings and
configuration guide
Create a test database
Create a new database "test". You can use one of the MySQL front-ends such as
mysql-workbench
, or the command-line
mysqladmin
command:
$ mysqladmin -h localhost -u root -p create test
Testing the ODBC
To test the ODBC connection
$ isql MySQL-test
If the connection is established, you will see
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL>
If you have a problem connecting then check the error message by running
$ isql MySQL-test -v
A couple useful websites
https://www.unixodbc.org/doc/OOoMySQL.pdf
This website got me going on ODBC with MySQL but left out some things that were necessary for me
to get isql up and running. However this might be a good reference for the OpenOffice part.
http://mail.easysoft.com/pipermail/unixodbc-support/2004-August/000111.html
To work around error messages this URL proved helpful so here it is as well.
Postgresql
Set up your data sources in
/etc/odbc.ini
(system wide) or
~/.odbc.ini
(current user). If a data source is defined in both of these files, the one in your home directory take precedence.
[Postgres-test]
Description     = Postgres database test
Driver          = postgresql
Servername      = localhost
Username        = postgres
Password        = test123
Database        = test
Port            = 5432
ReadOnly        = No
Virtuoso / SPARQL
/etc/odbc.ini
[ODBC Data Sources]
VOS = Virtuoso

[VOS]
Driver = virtuoso-odbc
Description = Virtuoso Open-Source Edition
Address = localhost:1111
/etc/odbcinst.ini
[virtuoso-odbc]
Driver = /usr/lib/virtodbc.so
Opening a connection using the default credentials (username: "dba", password: "dba"):
$ isql VOS dba dba
SQLite
Setup
odbc.ini
by assign the sqlite file location.
/etc/odbc.ini
[ODBC Data Sources]
sampleDB            = SQLite3 Driver

[sampleDB]
Driver      = /usr/lib/libsqlite3odbc.so
Description = Sample DB
database    = /home/db/sample.sqlite