---
description: "ODBC Cursor Library Error Codes"
title: "ODBC Cursor Library Error Codes | Microsoft Docs"
ms.custom: ""
ms.date: "01/19/2017"
ms.prod: sql
ms.prod_service: connectivity
ms.reviewer: ""
ms.technology: connectivity
ms.topic: reference
helpviewer_keywords:
- "cursor library [ODBC], error codes"
- "error codes [ODBC], cursor library"
- "ODBC cursor library [ODBC], error codes"
ms.assetid: 9713480e-8744-4f37-a630-20871590d4a1
author: David-Engel
ms.author: v-daenge
---
# ODBC Cursor Library Error Codes
> [!IMPORTANT]
> This feature will be removed in a future version of Microsoft Data Access Component. Avoid using this feature in new development work and plan to modify applications that currently use this feature. Instead, use driver and server cursors.
The ODBC cursor library returns the following SQLSTATEs in addition to those listed in [ODBC API Reference](../../../odbc/reference/syntax/odbc-api-reference.md).
> [!NOTE]
> The cursor library does not order status records; the Driver Manager and ODBC 3.*x* drivers are responsible for ordering status records.
|SQLSTATE|Description|Can be returned from|
|--------------|-----------------|--------------------------|
|01000|Cursor is not updatable.|**SQLFetch**
**SQLFetchScroll**|
|01000|Cursor library not used. Load failed.|**SQLBrowseConnect**
**SQLConnect**
**SQLDriverConnect**|
|01000|Cursor library not used. Insufficient driver support.|**SQLBrowseConnect**
**SQLConnect**
**SQLDriverConnect**|
|01000|Cursor library not used. Version mismatch with Driver Manager.|**SQLBrowseConnect**
**SQLConnect**
**SQLDriverConnect**|
|01000|Driver returned SQL_SUCCESS_WITH_INFO. The warning message has been lost.|**SQLFetch**
**SQLFetchScroll**|
|S1000|General error: Unable to create file buffer.|**SQLFetch**
**SQLFetchScroll**
**SQLGetData**|
|S1000|General error: Unable to read from file buffer.|**SQLFetch**
**SQLFetchScroll**
**SQLGetData**|
|S1000|General error: Unable to write to file buffer.|**SQLFetch**
**SQLFetchScroll**
**SQLGetData**|
|S1000|General error: Unable to close or remove file buffer.|**SQLFreeHandle**
**SQLFreeStmt**|
|SL001|Positioned request cannot be performed because no searchable columns were bound.|**SQLExecDirect**
**SQLGetData**
**SQLPrepare**|
|SL002|Positioned request could not be performed because result set was created by a join condition.|**SQLExecute**
**SQLExecDirect**
**SQLGetData**|
|SL003|Bound buffer exceeds maximum segment size.|**SQLFetch**
**SQLFetchScroll**|
|SL004|Result set was not generated by a **SELECT** statement.|**SQLGetData**|
|SL005|**SELECT** statement contains a GROUP BY clause.|**SQLGetData**|
|SL006|Parameter arrays are not supported with positioned requests.|**SQLPrepare**
**SQLExecDirect**|
|SL008|**SQLGetData** is not allowed on a forward-only (nonbuffered) cursor.|**SQLGetData**|
|SL009|No columns were bound prior to calling **SQLFetch** or **SQLFetchScroll**.|**SQLFetch**
**SQLFetchScroll**|
|SL010|**SQLBindCol** returned SQL_ERROR during an attempt to bind to an internal buffer.|**SQLFetch**
**SQLFetchScroll**
**SQLGetData**|
|SL011|Statement option is valid only after calling **SQLFetch** or **SQLFetchScroll**.|**SQLGetStmtAttr**|
|SL012|Statement bindings may not be changed while a cursor is open.|**SQLBindCol**
**SQLFreeHandle**
**SQLFreeStmt**
**SQLSetStmtAttr**|
|SL014|A positioned request was issued and not all column count fields were buffered.|**SQLExecDirect**
**SQLExecute**
**SQLPrepare**|
|SL015|**SQLFetch** and **SQLFetchScroll** cannot be mixed.|**SQLExtendedFetch**
**SQLFetch**
**SQLFetchScroll**|