Re: SQLGetTypeInfo does not return COLUMN_SIZE

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема Re: SQLGetTypeInfo does not return COLUMN_SIZE
Дата
Msg-id 5315E336.40603@vmware.com
обсуждение исходный текст
Ответ на SQLGetTypeInfo does not return COLUMN_SIZE  ("Martin J. Evans" <bohica@ntlworld.com>)
Ответы Re: SQLGetTypeInfo does not return COLUMN_SIZE  ("Martin J. Evans" <bohica@ntlworld.com>)
Список pgsql-odbc
(sorry for the late reply, I'm spring-cleaning my inbox..)

On 10/04/2013 08:01 PM, Martin J. Evans wrote:
> I may have discovered an issue with the postgres ODBC Driver.
>
> Postgres ODBC Driver version:
> perl -MDBI -le 'my $h = DBI->connect; print $h->get_info(7);'
> 09.00.0310
>
> Platform: Linux, Ubuntu
>
> I maintain Perl DBD::ODBC and the test suite shows a problem because when calling SQLGetTypeInfo some types return
>
> 'CREATE_PARAMS' => 'max. length'
>
> but then the COLUMN_SIZE is missing. e.g.:
>
> $VAR1 = {
>             'UNSIGNED_ATTRIBUTE' => undef,
>             'MAXIMUM_SCALE' => undef,
>             'INTERVAL_PRECISION' => '0',
>             'CREATE_PARAMS' => 'max. length',
>             'NUM_PREC_RADIX' => undef,
>             'PRECISION' => 255,
>             'SEARCHABLE' => '3',
>             'MONEY' => '0',
>             'AUTO_INCREMENT' => undef,
>             'LOCAL_TYPE_NAME' => undef,
>             'LITERAL_PREFIX' => '\'',
>             'MINIMUM_SCALE' => undef,
>             'TYPE_NAME' => 'varchar',
>             'NULLABLE' => '1',
>             'DATA_TYPE' => 12,
>             'SQL_DATA_TYPE' => '12',
>             'LITERAL_SUFFIX' => '\'',
>             'CASE_SENSITIVE' => '1',
>             'SQL_DATETIME_SUB' => undef
>           };
>
> See http://msdn.microsoft.com/en-us/library/ms714632%28v=vs.85%29.aspx where COLUMN_SIZE was introduced in ODBC 2
(decadesago) and should exist in the columns returned. Without it, the application cannot know what to put in varchar
(size_here)after a column in a create table. 
>
> I've put in a special case for now to work around this problem but it issues a warning too. If you need anything
furtherfrom me please let me know. 

It's there with the old name "PRECISION". That Microsoft page says that:

"The following columns have been renamed for ODBC 3.x. The column name
changes do not affect backward compatibility because applications bind
by column number."

So technically, I think the driver is not doing anything wrong when it's
returning the old name, although I agree it would be about time to
switch to the new names...

- Heikki


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

Предыдущее
От: Heikki Linnakangas
Дата:
Сообщение: Re: SQLFetchScroll with SQL_ATTR_ROWS_FETCHED_PTR closing statement.
Следующее
От: "Martin J. Evans"
Дата:
Сообщение: Re: SQLGetTypeInfo does not return COLUMN_SIZE