On 13/04/2019 5:49 am, Anton Shepelev wrote:
> Bogdan Degtyariov to Anton Shepelev:
>
>>> As far as I have understood from the ODBC standard,
>>> driver managers are interchangeable so that any ODBC
>>> dirver shall work with any ODBC driver manager. Is
>>> myodbc special in this regard?
>>
>> That is not always the case. iODBC and UnixODBC have
>> different library names. The ODBC driver needs the driver
>> manager libraries to work. Therefore this dependency is
>> there...
>
> Although the libraries have different names, they expose the
> same interface and are compatible on the binary level. The
> driver can dynamically link to a driver-manager library with
> the standard name `libodbcinst.so'. A symbolic link with
> this name can be created pointing to whatever driver manager
> is required. A driver need not depend upon a specific
> driver manager.
Anton,
That would be the case in a perfect world. I personally would very much
appreciate if the driver managers were freely interchangeable.
In the reality the ODBC driver uses the particular driver manager
headers with the ODBC type definitions. The complete matching of ODBC
type definitions is not guaranteed at all. The set of supported
functions might vary as well.
For instance: UnixODBC 2.3.x supports ODBC Specification 3.8, which is
not the case for the latest version of iODBC 3.52.12. Not all symbols
will be resolved when the driver load is attempted. The most like result
of such mismatch would be a crash.
--
Best Regards,
Bogdan Degtyariov