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
|
Список | 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 по дате отправления: