Обсуждение: ODBC 2.0 Bug: wrong timestamp data type

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

ODBC 2.0 Bug: wrong timestamp data type

От
"Oleg"
Дата:
     Hello!

     I used the latest driver version 
(psqlodbc_10_02_0000-x64.zip).
     If your application uses ODBC version 2.0. When you 
call SQLGetTypeInfo, the driver reports supported data 
types that are not available for version 2.0. The first 
iteration of the result of this function for the timestamp 
data type is SQL_TYPE_TIMESTAMP. If you then call 
SQLBindParameter, ODBC Manager returns s1003 (SQL1).log). 
The error could be corrected (SQL2.log). To verify this, I 
made changes to the function PGAPI_GetTypeInfo: for ODBC 
2.0 filter unsupported data types.

---- info.c (1153) ------------------------
QR_set_field_info_v(res, 18, "INTERVAL_PRECISION", 
PG_TYPE_INT2, 2);

for (i = 0, sqlType = sqlTypes[0]; sqlType; sqlType = 
sqlTypes[++i])
{
pgType = sqltype_to_pgtype(conn, sqlType);

// Filter unsupported data types
if (EN_is_odbc2(env) && (sqlType == SQL_TYPE_DATE || 
sqlType == SQL_TYPE_TIME || sqlType == 
SQL_TYPE_TIMESTAMP))
continue;

if (sqlType == SQL_LONGVARBINARY)
-------------------------------------------

     Thank you for listening.

     WBR,
     Oleg Tonkikh.

Вложения

Re: ODBC 2.0 Bug: wrong timestamp data type

От
"Inoue, Hiroshi"
Дата:
Hi Oleg,

If I provide test drivers, could you it?

regards,
Hiroshi Inoue

On 2018/04/26 1:39, Oleg wrote:
> Hello!
>
>     I used the latest driver version (psqlodbc_10_02_0000-x64.zip).
>     If your application uses ODBC version 2.0. When you call 
> SQLGetTypeInfo, the driver reports supported data types that are not 
> available for version 2.0. The first iteration of the result of this 
> function for the timestamp data type is SQL_TYPE_TIMESTAMP. If you 
> then call SQLBindParameter, ODBC Manager returns s1003 (SQL1).log). 
> The error could be corrected (SQL2.log). To verify this, I made 
> changes to the function PGAPI_GetTypeInfo: for ODBC 2.0 filter 
> unsupported data types.
>
> ---- info.c (1153) ------------------------
> QR_set_field_info_v(res, 18, "INTERVAL_PRECISION", PG_TYPE_INT2, 2);
>
> for (i = 0, sqlType = sqlTypes[0]; sqlType; sqlType = sqlTypes[++i])
> {
> pgType = sqltype_to_pgtype(conn, sqlType);
>
> // Filter unsupported data types
> if (EN_is_odbc2(env) && (sqlType == SQL_TYPE_DATE || sqlType == 
> SQL_TYPE_TIME || sqlType == SQL_TYPE_TIMESTAMP))
> continue;
>
> if (sqlType == SQL_LONGVARBINARY)
> -------------------------------------------
>
>     Thank you for listening.
>
>     WBR,
>     Oleg Tonkikh