--- 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: - "ODBC cursors, implicit cursor conversions" - "implicit cursor conversions" - "cursors [ODBC], implicit cursor conversions" 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" --- # Implicit Cursor Conversions (ODBC) [!INCLUDE[appliesto-ss-asdb-asdw-pdw-md](../../../includes/appliesto-ss-asdb-asdw-pdw-md.md)] Applications can request a cursor type through [SQLSetStmtAttr](../../../relational-databases/native-client-odbc-api/sqlsetstmtattr.md) 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. ## See Also [Cursor Programming Details (ODBC)](../../../relational-databases/native-client-odbc-cursors/programming/cursor-programming-details-odbc.md)