Обсуждение: psqlodbc - dayofweek and week functions are not supported butactually are

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

psqlodbc - dayofweek and week functions are not supported butactually are

От
xsgao@aim.com
Дата:
When calling SQLGetInfo(SQL_TIMEDATE_FUNCTIONS), psqlodbc tells that WEEKOFDAY and WEEK are not supported. But in convert.c, it converts these two functions to extrat(dow/week from $1). So if you just send dayofweek() in a query, PostgreSQL will return correct values.

So in this method of info.c:

RETCODE  SQL_API
PGAPI_GetInfo(HDBC hdbc,
     SQLUSMALLINT fInfoType,
     PTR rgbInfoValue,
     SQLSMALLINT cbInfoValueMax,
     SQLSMALLINT * pcbInfoValue)

You need to append two more bits:

  case SQL_TIMEDATE_FUNCTIONS: /* ODBC 1.0 */
   len = 4;
   value = (SQL_FN_TD_NOW | SQL_FN_TD_DAYOFWEEK | SQL_FN_TD_WEEK );
   break;

I am using  10.03.0000.

thanks,
Song X. Gao

Re: psqlodbc - dayofweek and week functions are not supported butactually are

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

I would take care of the change.
Thanks.

Hiroshi Inoue

On 2019/03/28 3:43, xsgao@aim.com wrote:
When calling SQLGetInfo(SQL_TIMEDATE_FUNCTIONS), psqlodbc tells that WEEKOFDAY and WEEK are not supported. But in convert.c, it converts these two functions to extrat(dow/week from $1). So if you just send dayofweek() in a query, PostgreSQL will return correct values.

So in this method of info.c:

RETCODE  SQL_API
PGAPI_GetInfo(HDBC hdbc,
     SQLUSMALLINT fInfoType,
     PTR rgbInfoValue,
     SQLSMALLINT cbInfoValueMax,
     SQLSMALLINT * pcbInfoValue)

You need to append two more bits:

  case SQL_TIMEDATE_FUNCTIONS: /* ODBC 1.0 */
   len = 4;
   value = (SQL_FN_TD_NOW | SQL_FN_TD_DAYOFWEEK | SQL_FN_TD_WEEK );
   break;

I am using  10.03.0000.

thanks,
Song X. Gao

ウイルス フリー。 www.avg.com