Week 32 contribution of PDK documentation content. See release notes for details. Fixes bug Bug 3582
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License
"Eclipse Public License v1.0" which accompanies this distribution,
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
Nokia Corporation - initial contribution.
Contributors:
-->
<!DOCTYPE concept
PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept id="GUID-2052461A-DF29-5DD0-A7D2-B46A50EAD762" xml:lang="en"><title>Cursor
navigation</title><shortdesc>Describes how the functionality of the rowset cursor and cursor
navigation.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
<p>The rowset cursor can navigate to all available rows in the rowset. The
rows available depend on how the rowset is generated, and particularly on
whether the rowset is an SQL view using an evaluation window. </p>
<p>The cursor has two valid locations outside of the actual rowset, known
as the Beginning and the End. Initially and also following a reset, the cursor
is positioned at the beginning.</p>
<p>As regards navigating to next and previous rows, the beginning is considered
to lie immediately prior to the first row, and end is immediately following
the last row. Navigating to the first row is equivalent to navigating to the
next row from the beginning, which in an empty set takes the cursor to the
end of the set (maybe not immediately obvious). A similar process holds for
navigating to the last row of a set.</p>
<p>When updating or inserting a row, the cursor is in a special state which
prevents navigation until the update or insertion is completed.</p>
<p>The cursor may also end up in two other states</p>
<ul>
<li id="GUID-91DD7C42-E668-579D-B58D-2F45FDF61DDF"><p>after deletion of the
current row it is "in limbo" between the two neighbouring rows. Navigating
to next and previous will move to the respective row.</p> </li>
<li id="GUID-17BA2F54-A1FD-5796-AA2B-D59BF66CBBCD"><p>it may become invalid
after an error during navigation: either due to failure in the store or file
system, or due to loss of context when multiple rowsets are concurrently updating
a table. Navigating to any fixed position (i.e. not next or previous) will
restore the cursor.</p> </li>
</ul>
</conbody></concept>