| title | Implicit Cursor Conversions (ODBC) | Microsoft Docs | |||
|---|---|---|---|---|
| ms.custom | ||||
| ms.date | 03/06/2017 | |||
| ms.prod | sql | |||
| ms.prod_service | database-engine, sql-database, sql-data-warehouse, pdw | |||
| ms.reviewer | ||||
| ms.technology | native-client | |||
| ms.topic | reference | |||
| helpviewer_keywords |
|
|||
| ms.assetid | fe29a58d-8448-4512-9ffd-b414784ba338 | |||
| author | markingmyname | |||
| ms.author | maghan | |||
| monikerRange | >=aps-pdw-2016||=azuresqldb-current||=azure-sqldw-latest||>=sql-server-2016||=sqlallproducts-allversions||>=sql-server-linux-2017||=azuresqldb-mi-current |
[!INCLUDEappliesto-ss-asdb-asdw-pdw-md]
Applications can request a cursor type through SQLSetStmtAttr and then execute an SQL statement that is not supported by server cursors of the type requested. A call to SQLExecute or SQLExecDirect returns SQL_SUCCESS_WITH_INFO and SQLGetDiagRec returns:
szSqlState = "01S02", *pfNativeError = 0,
szErrorMsg="[Microsoft][SQL Server Native Client] Cursor type changed"
The application can determine what type of cursor is now being used by calling SQLGetStmtOption set to SQL_CURSOR_TYPE. The cursor type conversion applies to only one statement. The next SQLExecDirect or SQLExecute will be done using the original statement cursor settings.