Dependencies:
Boost - only spirit headers are needed
Loki - Necessary Loki headers are included with the source
Oracle client libs - Oracle client 11G is recomended. Build with InstantClient
and is supported but XMLTYPE support should be disabled. InstantClient does not
containt XDK libs. Oracle client 10G contains buggy XDK.

Whole library can be divided into several parts:
1. Handles, Attributes, DB Connections, Sessions.
   This part was copied from OCIPL(http://www.foxplanet.de/ocipl/),
   all credits belong to Martin Fuchs <martin-fuchs@gmx.net>
   Trotl library is based on OCIPL. OCIPL is clear, readable piece of source
   code.
   
2. SimplePlsqlParser - I was too lazy to write my own parser for PL/SQL.
   I use boost::spirit for that. The parser is the only reason why this
   library depend on Boost. 
   Current parser is as simple as possible.
   I supports Sergei Kuchin's OTL syntax. I the future there should
   be a posibility to indent PL/SQL source using this parser.

3. SqlStatement - each SQL or PL/SQL statement is represented by this class.
   This class is responsible for parsing statements, declaring bindvars, ...
   
3. BindPar class and its' descendents.
   Instances of BindPar's descendents are used for all OCI Bind/Define
   operations. All descendents should support scalar and even vector binds.
   BindPar's instances are created by calling three different factories:
   - BindParFactTwoParmSing::Instance() - takes string argument describing
     Oracle datatype("int", "clob"). Other arguments(possition, connection
     handler). Connection handler is need only for complex datatypes like BLOBs.
   - DefineParFactTwoParmSing::Instance() - takes numeric argument describing
     oracle datatype. This number is returned from describe select call.
   - CustDefineParFactTwoParmSing::Instance() - takes string argument
     describing complex datatype(SQLT_NTY) This factory is used for
     SYS.XMLTYPE, but can be used for other custom datatype.

   Each BindPar descendent should register own create method with each factory.
   See trotl_int.cpp.

4. SqlValue class and its' descendent.
   While BindPar classes represent Oracle datatypes and are used internally by
   trotl library. SqlValue clasess represent C++ datatypes. These classes are
   used by clients for reading/writting data from/to Sql statements.

5. Convertor.
   There are two convertor classes: ConvertorForRead a ConvertorForWrite.
   These classes implement Loki multimethod for assigning(converting) data
   from BindPar class descendent into SqlValue class descendent.
   Resp. SqlValue -> BindPar, in case of ConvertorForWrite.

   There are some conversion missing. For example assigning string value into
   BindParDate.

   
