Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Français) » SQL Anywhere Server - Programming » Introduction to Programming with SQL Anywhere » Using SQL in applications » Working with cursors

 

Using cursors

Using a cursor in embedded SQL is different than using a cursor in other interfaces.

♦  To use a cursor (ADO.NET, ODBC, JDBC, and Open Client)
  1. Prepare and execute a statement.

    Execute a statement using the usual method for the interface. You can prepare and then execute the statement, or you can execute the statement directly.

    With ADO.NET, only the SACommand.ExecuteReader method returns a cursor. It provides a read-only, forward-only cursor.

  2. Test to see if the statement returns a result set.

    A cursor is implicitly opened when a statement that creates a result set is executed. When the cursor is opened, it is positioned before the first row of the result set.

  3. Fetch results.

    Although simple fetch operations move the cursor to the next row in the result set, SQL Anywhere permits more complicated movement around the result set.

  4. Close the cursor.

    When you have finished with the cursor, close it to free associated resources.

  5. Free the statement.

    If you used a prepared statement, free it to reclaim memory.

♦  To use a cursor (embedded SQL)
  1. Prepare a statement.

    Cursors generally use a statement handle rather than a string. You need to prepare a statement to have a handle available.

    For information about preparing a statement, see Preparing statements.

  2. Declare the cursor.

    Each cursor refers to a single SELECT or CALL statement. When you declare a cursor, you state the name of the cursor and the statement it refers to.

    For more information, see DECLARE CURSOR statement [ESQL] [SP].

  3. Open the cursor. See OPEN statement [ESQL] [SP].

    In the case of a CALL statement, opening the cursor executes the procedure up to the point where the first row is about to be obtained.

  4. Fetch results.

    Although simple fetch operations move the cursor to the next row in the result set, SQL Anywhere permits more complicated movement around the result set. How you declare the cursor determines which fetch operations are available to you. See FETCH statement [ESQL] [SP] and Fetching data.

  5. Close the cursor.

    When you have finished with the cursor, close it. This frees any resources associated with the cursor. See CLOSE statement [ESQL] [SP].

  6. Drop the statement.

    To free the memory associated with the statement, you must drop the statement. See DROP STATEMENT statement [ESQL].

For more information about using cursors in embedded SQL, see Fetching data.

Prefetching rows

In some cases, the interface library may undertake performance optimizations internally (such as prefetching results), so these steps in the client application may not correspond exactly to software operations.