2003-03-29 07:47:03 -05:00
|
|
|
%&latex -*- latex -*-
|
|
|
|
|
|
|
|
\chapter{Open Database Base Connectivity Interface (ODBC)}
|
|
|
|
|
|
|
|
ODBC is an standarized API for talking to database drivers, thus
|
|
|
|
enabling your application to use any ODBC compliant database driver to
|
|
|
|
connect to SQL databases. The Scheme Shell provides access to almost
|
|
|
|
all functions and data structures of ODBC.
|
|
|
|
|
|
|
|
The ODBC API was designed by Microsoft Corporation and has been
|
|
|
|
updated several times. At the time of writing, ODBC API version 3.5
|
|
|
|
was current. However, the scsh also provides access to all functions
|
|
|
|
needed to use an ODBC driver manager starting from version 1.0.
|
|
|
|
|
|
|
|
\section{ODBC Overview}
|
|
|
|
|
|
|
|
An ODBC setup consists of several components which arrange around a so
|
|
|
|
called ODBC driver manager. The driver manager provides an abstract
|
|
|
|
implementation of the ODBC API for accessing databases. The concrete
|
|
|
|
implementation, which contains e.g. contains the code to connect to a
|
|
|
|
certain SQL database depends on the database to access. Therefore,
|
|
|
|
this codes resides in a ODBC driver, which is usually part of the SQL
|
|
|
|
database distribution. In some cases ODBC driver managers bring along
|
|
|
|
their own drivers.
|
|
|
|
|
|
|
|
The \textit{Data Source Name}, DSN for short, associates credentials
|
|
|
|
needed to logon a certain database with a the apropriate driver to
|
|
|
|
access that database. If an application wishes to connect to a DSN
|
2003-04-24 09:02:02 -04:00
|
|
|
the driver manager loads the specified driver and routes all functions
|
|
|
|
call by the application via this driver to the database.
|
2003-03-29 07:47:03 -05:00
|
|
|
|
|
|
|
The are at least two implementation of ODBC driver managers for UNIX
|
|
|
|
systems: unixODBC~\cite{BlaBla} and iODBC~\cite{BlaBla}. The Scheme
|
|
|
|
shell can use both ODBC driver managers. However, you have to decide
|
|
|
|
during compilation of scsh which one to use.
|
|
|
|
|
|
|
|
Support for ODBC at this time is quite low-level---for alsmost each
|
|
|
|
function or data structure in the ODBC API there is a function call in
|
|
|
|
Scheme. This chapter describes how to call the API functions from
|
2003-04-24 09:02:02 -04:00
|
|
|
Scheme, but does not cover the functionality of the underlying ODBC
|
|
|
|
function call in detail. Microsoft's ODBC API reference
|
2003-03-29 07:47:03 -05:00
|
|
|
manual~\cite{BlaBla} explains all API functions in great detail.
|
|
|
|
|
|
|
|
\section{ODBC Data Types}
|
|
|
|
|
|
|
|
%%% handles
|
|
|
|
|
|
|
|
\section{ODBC functions and constants}
|
|
|
|
|
|
|
|
|
|
|
|
\section{Error handling}
|
|
|
|
|
|
|
|
\section{Restrictions}
|
|
|
|
|
|
|
|
|