Thread: Patch for cursor type fallback

Patch for cursor type fallback

From
"Mark G. Adams"
Date:
According to MSDN docs for SQLSetStmtAttr, if you try to request a
cursor type which isn't supported, the driver should fall back to a
supported type, set an appropriate SQLState and return
SQL_SUCCESS_WITH_INFO.

Currently, if a SQL_ATTR_CURSOR_TYPE of SQL_CURSOR_DYNAMIC is requested,
we fall back to SQL_CURSOR_FORWARD_ONLY and no warning is given; this is
simply because we don't explicitly check for SQL_CURSOR_DYNAMIC.

A better solution is to check for SQL_CURSOR_DYNAMIC, fall back to
SQL_CURSOR_KEYSET_DRIVEN and set a warning accordingly.

Also, currently if SQL_CURSOR_KEYSET_DRIVEN is requested and only static
cursors are supported, we fall back without returning a warning.

Attached is a patch implementing both of the above against
psqlodbc-08.00.0101.

//Mark
--
Mark G. Adams
mgadams@ca.stilo.com

Attachment

Re: Patch for cursor type fallback

From
"Dave Page"
Date:
Thanks Mark, patch applied.

Regards, Dave

> -----Original Message-----
> From: pgsql-odbc-owner@postgresql.org
> [mailto:pgsql-odbc-owner@postgresql.org] On Behalf Of Mark G. Adams
> Sent: 23 June 2005 16:54
> To: pgsql-odbc@postgresql.org
> Subject: [ODBC] Patch for cursor type fallback
>
> According to MSDN docs for SQLSetStmtAttr, if you try to request a
> cursor type which isn't supported, the driver should fall back to a
> supported type, set an appropriate SQLState and return
> SQL_SUCCESS_WITH_INFO.
>
> Currently, if a SQL_ATTR_CURSOR_TYPE of SQL_CURSOR_DYNAMIC is
> requested,
> we fall back to SQL_CURSOR_FORWARD_ONLY and no warning is
> given; this is
> simply because we don't explicitly check for SQL_CURSOR_DYNAMIC.
>
> A better solution is to check for SQL_CURSOR_DYNAMIC, fall back to
> SQL_CURSOR_KEYSET_DRIVEN and set a warning accordingly.
>
> Also, currently if SQL_CURSOR_KEYSET_DRIVEN is requested and
> only static
> cursors are supported, we fall back without returning a warning.
>
> Attached is a patch implementing both of the above against
> psqlodbc-08.00.0101.
>
> //Mark
> --
> Mark G. Adams
> mgadams@ca.stilo.com
>