SQLSpecialColumns result set column names should change for ODBC 3 compatibility

Поиск
Список
Период
Сортировка
От Joris Wit
Тема SQLSpecialColumns result set column names should change for ODBC 3 compatibility
Дата
Msg-id a8e06c36-9d82-8e9a-c4b4-9b9c67285bb6@joriswit.nl
обсуждение исходный текст
Список pgsql-odbc
Hi,

I am using Microsoft SQL Server Management Studio (SSMS) to copy tables 
from a PostgreSQL database to SQL Server using the ODBC driver. However, 
this fails with an error that it cannot find the 'COLUMN_SIZE'. I think 
this is because the result set of the SQLSpecialColumns function uses 
the ODBC 2 column names, instead of the ODBC 3 column names.

According to Microsoft's docs, this is the difference between ODBC 2 and 
3 in the result set column names:

ODBC 2.0 column    ODBC 3.x column
PRECISION          COLUMN_SIZE
LENGTH             BUFFER_LENGTH
SCALE              DECIMAL_DIGITS

The documentation also says that "applications bind by column number", 
but evidently SSMS does not (in its ProviderDescriptors.xml file).

source:
https://docs.microsoft.com/en-us/sql/odbc/reference/syntax/sqlspecialcolumns-function?view=sql-server-ver15

When looking in the psqlODBC source code, I think in the 
PGAPI_SpecialColumns function in info.c a check should be added to 
support ODBC 3 (possibly using EN_is_odbc3()). When the check confirms 
ODBC 3+ is used, the different column names should be used.

Greetings,
Joris Wit.




В списке pgsql-odbc по дате отправления:

Предыдущее
От: Olagoke Akinyemi
Дата:
Сообщение: pgaudit extension installation
Следующее
От: Dulanic
Дата:
Сообщение: SSMS ODBC Linked Server Issue