[ANN] DbxoODBC 2.015 - Kylix/Delphi Open Source ODBC dbExpress driver

From: Vadim V.Lopushansky (vadim_at_unknown.net)
Date: 05/24/04

Date: Mon, 24 May 2004 14:48:59 +0300

Hello, All!

DbxoODBC 2.015 - Kylix/Delphi Open Source ODBC dbExpress driver.


  Version 2.015, 2004-05-23

  [ Dmitry Arefiev <darefiev@gs-soft.ru> ]

+ changed: ISqlCommandOdbc now supported by TSqlCommandOdbc
+ added: TSQLMetaDataOdbc.SetOption supports schema and catalog names.
    Also other metadata related code uses these option values.
+ changed: extended Unicode support
+ added: optimized routines string <-> bcd conversions
+ changed: beginTransaction set SQL_ATTR_TXN_ISOLATION only if it was
  It allows to overcome issue with DB2& "CLI0126E".
+ changed: TSqlCommandOdbc.Get/Set Option was returning error for
    xeCommTransactionID option. I have removed that, to make driver more
    compatible with Borland ones.
+ changed: fixed TSqlCommandOdbc.setParameter. It was transmiting wrong
    values to SQLBindParameter when length was around 256. And made uniform
    handling for variable length data types.
+ changed: fixed TSqlCursorMetaDataIndexes.getString. It was returning wrong
  data in PKEY_NAME column.
+ changed: optimized BLOB fetching. Now cursor keeps BLOB buffers allocated
    until cursor will be closed.
+ changed: replaced AllocMem by GetMem to exclude not required memory
    by zeros

  [ Vadim V.Lopushansky pult@ukr.net ]

+ Added unit SqlExprFix.pas:
  Some runtime memory fixes of Borland Delphi (6 Upd2, 7, 7 Upd1) system
  modules. For correction of errors it is enough to include this module
  in your project or in any package used by your project. After loading
  such package in IDE the bugs in standard packages will be corrected.
  Fixed units (db.pas, dbCommon.pas, Provider.pas, SqlExpr.pas):
          - added to Delphi6 connection handling options from Delphi7:
               CUSTOM_INFO = 'Custom String'
               SERVERPORT = 'Server Port'
               MULTITRANSENABLED = 'Multiple Transaction'
               TRIMCHAR = 'Trim Char'
               CONN_TIMEOUT = 'Connection Timeout'
               OSAUTHENTICATION = 'Os Authentication'
          - fixed clone connection

          Delphi6: // 6, 6 Upd2
            - GetRecord: fixed check error code in Delphi 6.
          Delph7: // can be applied to Delphi6 ...
            - SetSchemaOption: fixed buffer oveflow:
              Crash of the application when the name of the database
              exceeds 256 characters.
            - GetQueryFromType: fixed added delimiter '.' when
              SchemaName is empty.

+ Map compiler directive _InternalCloneConnection_ to connection option
  'ICLONECON'. It is possible to set _InternalCloneConnection_ in a line
   of connection or in properties of connection:
    SQLConnection.Params.Values['Custom String'] := 'ICLONECON=1;...

+ Added field fCursorPreserved. When fCursorPreserved = False then
    problems are possible at work with transactions for open cursors
    (MSAccess, ...). In such situations it is recommended to set
    TClientDataSet.PackedRecords equal "-1". To find out value
    fCursorPreserved for the current connection it is possible at
    use ISqlConnectionOdbc.
    The general recommendation:
      Always establish in line ODBC of connection or in properties
      of ODBC DSN then "Cursor Behavior" = "Preserved".
      Examplpe connection string for INFORMIX ODBC Driver:
       "DRIVER={INFORMIX 3.82 32 BIT};DATABASE=test165;HOST=pult;"+
      But not all ODBC the driver support fCursorPreserved = True.
      "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\dbdemos.mdb".


Home page:
SourceForge Project Home Page:

 First, you must test with the latest version from the CVS area:

Project Sources:

  I recommend Tortoise CVS as the easiest to use Windows CVS client, from
  You will need to enter the CVS path (all on one line, including the
  leading colon:



  Example of loading/updating of the project from CVS by means of a batch
  file. For work it is necessary to edit a path to cvs.exe.

@echo off
set path=C:\Program Files\WinCVS\CVSNT;%path%
rem set path=D:\CygWin\bin;%path%
echo **********************************************
echo - When prompted for a password for anonymous,
echo simply press the Enter key.
echo **********************************************
set cvsproj=cvs-pserver.sourceforge.net:80/cvsroot/open-dbexpress
echo on
cvs -d:pserver:anonymous@%cvsproj% login
cvs -z3 -d:pserver:anonymous@%cvsproj% co dbxoodbc