Обсуждение: Simple Q: Does the ODBC driver support LONGVARCHAR?

Поиск
Список
Период
Сортировка

Simple Q: Does the ODBC driver support LONGVARCHAR?

От
"Adam Rossi"
Дата:
Does the ODBC driver support longvarchar? It seems that no matter what I do
with the settings for the driver, such as checking "Unknowns as
LongVarChar", "Text as LongVarChar", "Parse Statements", etc., the
longvarchar type NEVER works. In this simple SQL statement:

create table test_table
testid INTEGER,text_field LONGVARCHAR,var_field VARCHAR(250),char_field CHAR(1))

the field "text_field" defined as type "LONGVARCHAR" will always cause the
statement to fail with the following message:

ERROR:  Unable to locate type name 'longvarchar' in catalog' (#17)

If I change the "LONGVARCHAR" to "TEXT", the statement below works fine:

create table test_table
testid INTEGER,text_field TEXT,var_field VARCHAR(250),char_field CHAR(1))

Since I am relying on some builder tools that only support ODBC standard
types (i.e. LONGVARCHAR and not TEXT), it would make my life a lot easier if
I could get LONGVARCHAR to work. Is this some deficiency in the driver?
Shouldn't an ODBC driver support the major ODBC types? Could anyone point me
in the right direction to hack the driver if it currently does not support
this syntax?

Thanks for your help.

- Adam




Re: Simple Q: Does the ODBC driver support LONGVARCHAR?

От
"Byron Nikolaidis"
Дата:
You are supposed to query odbc for the "native" data type names and then use
that in your Create Table statement.   Use the SQLGetTypeInfo() call -- the
TYPE_NAME field is what you want.   You can pass either the specific type
(SQL_LONGVARCHAR) or SQL_ALL_TYPES to get all of them at once.

Quoting from the odbc spec about SQLGetTypeInfo()... TYPE_NAME:  Data
Source-Dependent data type name... Applications must use this name in CREATE
TABLE and ALTER TABLE statements.

Byron

----- Original Message -----
From: Adam Rossi <adam.rossi@platinumsolutions.com>
To: <pgsql-interfaces@postgresql.org>
Sent: Monday, June 19, 2000 3:26 PM
Subject: [INTERFACES] Simple Q: Does the ODBC driver support LONGVARCHAR?


> Does the ODBC driver support longvarchar? It seems that no matter what I
do
> with the settings for the driver, such as checking "Unknowns as
> LongVarChar", "Text as LongVarChar", "Parse Statements", etc., the
> longvarchar type NEVER works. In this simple SQL statement:
>
> create table test_table
>
>  testid INTEGER,
>  text_field LONGVARCHAR,
>  var_field VARCHAR(250),
>  char_field CHAR(1))
>
> the field "text_field" defined as type "LONGVARCHAR" will always cause the
> statement to fail with the following message:
>
> ERROR:  Unable to locate type name 'longvarchar' in catalog' (#17)
>
> If I change the "LONGVARCHAR" to "TEXT", the statement below works fine:
>
> create table test_table
>
>  testid INTEGER,
>  text_field TEXT,
>  var_field VARCHAR(250),
>  char_field CHAR(1))
>
> Since I am relying on some builder tools that only support ODBC standard
> types (i.e. LONGVARCHAR and not TEXT), it would make my life a lot easier
if
> I could get LONGVARCHAR to work. Is this some deficiency in the driver?
> Shouldn't an ODBC driver support the major ODBC types? Could anyone point
me
> in the right direction to hack the driver if it currently does not support
> this syntax?
>
> Thanks for your help.
>
> - Adam
>
>