List:General Discussion« Previous MessageNext Message »
From:Mark Matthews Date:May 16 2003 3:09am
Subject:Re: Explaining unix ODBC in plain english
View as plain text  
Hash: SHA1

Nils Valentin wrote:

> To anybody reading this,
> I think there is a lot of confusion going around what unixODBC is or
who it is
> working. While I read myself some manuals trying to describe what each
> is doing (API, driver , MyODBC, unix ODBC, odbc.ini, odbcinst.ini,
isql) I
> also realized that I verry often find myself beeing trapped when thinking
> about what part is actually reposnsible for what. Even reading the MySQL
> documentation does not really lighten me up.
> I would very much appreciate if somebody (doesnt have to be Venu)
would be
> able to explain how unixODBC works in good old mostly non technical plain
> school english. Dont get me wrong I already have installed many different
> systems without problems (Suse, Redhat, Mandrake etc.), so I dont
> myself as a beginner ( I believe;-), however when it really comes to the
> small printed then I would probably have to fuzz around.
> here is where I feel unsure or that I found not clearly described in many
> manuals:
> What is an API -Advanced programming Interface ?

_A_ pplication _P_ rogramming _I_ nterface ... in layman's terms, it is
a definition of an interface that a certain system will let your code is usually expressed both in code (as a library your code would
use) and in some sort of specification, such as a standards
documentation. ODBC is an API, for example, which consists of a library
that you use in your code, and is also an X/Open/Microsoft standard.

> What is an driver ?

It is code that implements some standard API (the database-specific
parts of ODBC in this case), to allow that API to work with some other
code. Other examples of 'drivers' are the code that allows your Linux
kernel to talk to the various pieces of hardware in your system. For
example, there are many different kinds of disk drives. The Linux kernel
works with a standardized API to talk to them, but drivers translate the
calls from this API into the hardware-specific instructions that need to
be used with a particular disk drive.

> Is an API and a driver the same ?

No. You write your code to work with the ODBC API, a driver allows the
ODBC API to work with some other database. The picture basically looks
like this:

[your code] -> [odbc] -> [MyODBC] -> [MySQL]

> What is unixODBC ?

It is an implementation of the ODBC API for Unix.

> What is MyODBC ?

It is an ODBC driver, that allows MySQL to be used with ODBC.

> Is unixODBC running on the server side or client side ?

Client side.

> Is MyODBC running on the server side or the client side ?

Client side.

> Are the above two add-ons or plugins or something else ?

UnixODBC is an implementation of the ODBC API, that your code can then
use to work with databases that have ODBC drivers.

> Why I need to use unixODBC and MyODBC to access data from OpenOffice ?

UnixODBC provides the ODBC part (which OpenOffice talks to). MyODBC
allows UnixODBC (or any other ODBC implementation for that matter) to
work with MySQL...see the picture above, again.


- --
For technical support contracts, visit

    __  ___     ___ ____  __
   /  |/  /_ __/ __/ __ \/ /  Mark Matthews <mark@stripped>
  / /|_/ / // /\ \/ /_/ / /__ MySQL AB, SW Dev. Manager - J2EE/Windows
 /_/  /_/\_, /___/\___\_\___/ Flossmoor (Chicago), IL USA
Version: GnuPG v1.2.1 (MingW32)
Comment: Using GnuPG with Mozilla -


Explaining unix ODBC in plain englishNils Valentin16 May
  • Re: Explaining unix ODBC in plain englishMark Matthews16 May
    • Re: Explaining unix ODBC in plain englishDan Nelson16 May
  • Re: Explaining unix ODBC in plain englishNils Valentin17 May
    • Re: Explaining unix ODBC in plain englishmike parker17 May