Re: Case-sensitivity of connection string parameters

From: Mateusz Loskot <mateusz(at)loskot(dot)net>
To: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
Cc: "Inoue, Hiroshi" <h-inoue(at)dream(dot)email(dot)ne(dot)jp>, pgsql-odbc(at)postgresql(dot)org
Subject: Re: Case-sensitivity of connection string parameters
Date: 2016-05-10 15:11:00
Message-ID: CABUeae-ADZtjPBG73yhscMU0r3Cmtqv=7KkiHKzPgr-L2K2vYA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-odbc

On 10 May 2016 at 16:40, Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com> wrote:
> On 05/10/2016 06:52 AM, Mateusz Loskot wrote:
>>
>> On 10 May 2016 at 15:26, Inoue, Hiroshi <h-inoue(at)dream(dot)email(dot)ne(dot)jp> wrote:
>>>
>>> On 2016/05/10 16:56, Mateusz Loskot wrote:
>>>>
>>>>
>>>> I use the psqlODBC 9.2.1 with unixODBC 2.2.14 on Ubuntu 14.04.
>>>> Should I expect names of connection string parameters to be
>>>> case-sensitive?
>>>>
>>>> For instance, if I try DSN-less connection with the following connection
>>>> string passed to the ODBC API call SQLDriverConnect:
>>>>
>>>> "Driver={PostgreSQL
>>>> ANSI};Server=127.0.0.1;Database=test;UID=test;PWD=test;"
>>>>
>>>> I get this error:
>>>>
>>>> [unixODBC][Driver Manager]Data source name not found, and no default
>>>> driver specified
>>>
>>>
>>>
>>> What rejects the connection is unixODBC driver manager not psqlodbc
>>> driver.
>>> Newer version of unixODBC may allow "Driver=....".
>>
>>
>> I see, though, confusingly, in the same environment unixODBC
>> accepts "Driver=" for MySQL connection.
>> That is why I suspected psqlODBC.
>
>
> So what does the MySQL connection look like in its entirety?

Driver=MySQL;Server=localhost;Database=nanodbc_tests;User=root;Password=;Option=3;

Sample Travis CI build job where this MySQL connection string is
successfully used:
https://travis-ci.org/lexicalunit/nanodbc/jobs/128260733

Sample job where PostgreSQL connection string with capitalised Driver=
is failing:
https://travis-ci.org/lexicalunit/nanodbc/jobs/128260734

and PostgreSQL job worked after changing to DRIVER=
https://travis-ci.org/lexicalunit/nanodbc/jobs/129121683

> Also what are the *.ini file entries for the respective drivers?

All .ini files are left as installed by Ubuntu 14.04 packages

$ cat /etc/odbc.ini

$ cat /etc/odbcinst.ini

[SQLite]
Description = SQLite ODBC Driver
Driver = /usr/lib/odbc/libsqliteodbc.so
Setup = /usr/lib/odbc/libsqliteodbc.so
UsageCount = 1

[SQLite3]
Description = SQLite3 ODBC Driver
Driver = /usr/lib/odbc/libsqlite3odbc.so
Setup = /usr/lib/odbc/libsqlite3odbc.so
UsageCount = 1

[PostgreSQL ANSI]
Description = PostgreSQL ODBC driver (ANSI version)
Driver = psqlodbca.so
Setup = libodbcpsqlS.so
Debug = 0
CommLog = 1
UsageCount = 2

[PostgreSQL Unicode]
Description = PostgreSQL ODBC driver (Unicode version)
Driver = psqlodbcw.so
Setup = libodbcpsqlS.so
Debug = 0
CommLog = 1
UsageCount = 2

Best regards,
--
Mateusz Loskot, http://mateusz.loskot.net

In response to

Browse pgsql-odbc by date

  From Date Subject
Next Message Tsunakawa, Takayuki 2016-05-11 07:55:46 Re: PostgreSQL: SQLSetPos fails with SetPos update return error.
Previous Message Nick Gorham 2016-05-10 14:50:12 Re: Case-sensitivity of connection string parameters