Main Page   Class Hierarchy   Compound List   File List   Compound Members  

dbAnyCursor Class Reference

#include <cursor.h>

Inheritance diagram for dbAnyCursor:

dbL2List dbCursor< T > List of all members.

Public Methods

int getNumberOfRecords ()
void remove ()
bool isEmpty ()
bool isLimitReached ()
oid_t * toArrayOfOid (oid_t *arr)
int select (dbQuery &query, dbCursorType aType, void *paramStruct=NULL)
int select (dbQuery &query, void *paramStruct=NULL)
int select (char const *condition, dbCursorType aType, void *paramStruct=NULL)
int select (char const *condition, void *paramStruct=NULL)
int select (dbCursorType aType)
int select ()
void update ()
void removeAll ()
void removeAllSelected ()
void setSelectionLimit (size_t lim)
void unsetSelectionLimit ()
void setPrefetchMode (bool mode)
void reset ()
bool isLast ()
bool isFirst ()
void freeze ()
void unfreeze ()
dbTableDescriptorgetTable ()
 dbAnyCursor ()
 ~dbAnyCursor ()
void link (dbL2List *elem)
void unlink ()

Public Attributes

dbL2Listnext
dbL2Listprev

Protected Methods

void checkForDuplicates ()
bool isMarked (oid_t oid)
void mark (oid_t oid)
bool add (oid_t oid)
bool gotoNext ()
bool gotoPrev ()
bool gotoFirst ()
bool gotoLast ()
void setCurrent (dbAnyReference const &ref)
void fetch ()
void adjustReferences (size_t base, size_t size, long shift)
void setTable (dbTableDescriptor *aTable)
void setRecord (byte *rec)
 dbAnyCursor (dbTableDescriptor &aTable, dbCursorType aType, byte *rec)

Protected Attributes

dbDatabasedb
dbTableDescriptortable
dbCursorType type
dbCursorType defaultType
dbSelection selection
bool allRecords
oid_t firstId
oid_t lastId
oid_t currId
byte * record
size_t limit
int4 * bitmap
size_t bitmapSize
bool eliminateDuplicates
bool prefetch
bool removed
bool updateInProgress
void * paramBase

Friends

class dbAnyContainer
class dbDatabase
class dbHashTable
class dbTtreeNode
class dbSubSql
class dbStatement
class dbServer
class dbCLI

Detailed Description

Base class for all cursors


Member Function Documentation

void dbAnyCursor::freeze  
 

Freeze cursor. This method makes it possible to save current state of cursor, close transaction to allow other threads to proceed, and then later restore state of the cursor using unfreeze method and continue traversal through selected records.

int dbAnyCursor::getNumberOfRecords   [inline]
 

Get number of selected records

Returns:
number of selected records

dbTableDescriptor* dbAnyCursor::getTable   [inline]
 

Get table for which cursor is opened

bool dbAnyCursor::isEmpty   [inline]
 

Checks whether selection is empty

Returns:
true if there is no current record

Reimplemented from dbL2List.

bool dbAnyCursor::isFirst  
 

Check whether current record is the first one in the selection

Returns:
true if prev() method will return NULL

bool dbAnyCursor::isLast  
 

Check whether current record is the last one in the selection

Returns:
true if next() method will return NULL

bool dbAnyCursor::isLimitReached   [inline]
 

Checks whether limit for number of selected reacord is reached

Returns:
true if limit is reached

void dbAnyCursor::remove  
 

Remove current record

void dbAnyCursor::removeAll   [inline]
 

Remove all records in the table

void dbAnyCursor::removeAllSelected  
 

Remove all selected records

void dbAnyCursor::reset  
 

Reset cursor

Reimplemented from dbL2List.

int dbAnyCursor::select   [inline]
 

Select all records from the table with default cursor type

Returns:
number of selected records

int dbAnyCursor::select dbCursorType    aType [inline]
 

Select all records from the table

Parameters:
aType  cursor type: dbCursorForUpdate, dbCursorViewOnly
Returns:
number of selected records

int dbAnyCursor::select char const *    condition,
void *    paramStruct = NULL
[inline]
 

Execute query with default cursor type.

Parameters:
condition  selection criteria
paramStruct  pointer to structure with parameters.
Returns:
number of selected records

int dbAnyCursor::select char const *    condition,
dbCursorType    aType,
void *    paramStruct = NULL
[inline]
 

Execute query.

Parameters:
condition  selection criteria
aType  cursor type: dbCursorForUpdate, dbCursorViewOnly
paramStruct  pointer to structure with parameters.
Returns:
number of selected records

int dbAnyCursor::select dbQuery   query,
void *    paramStruct = NULL
[inline]
 

Execute query with default cursor type.

Parameters:
query  selection criteria
paramStruct  pointer to structure with parameters.
Returns:
number of selected records

int dbAnyCursor::select dbQuery   query,
dbCursorType    aType,
void *    paramStruct = NULL
[inline]
 

Execute query.

Parameters:
query  selection criteria
aType  cursor type: dbCursorForUpdate, dbCursorViewOnly
paramStruct  pointer to structure with parameters. If you want to create reentrant precompiled query, i.e. query which can be used concurrently by different threadsm you should avoid to use static variables in such query, and instead of it place paramters into some structure, specify in query relative offsets to the parameters, fill local structure and pass pointer to it to select method.
Returns:
number of selected records

void dbAnyCursor::setPrefetchMode bool    mode [inline]
 

Set prefetch mode. By default, current record is fetch as soon as it is becomes current. But sometimesyou need only OIDs of selected records. In this case setting prefetchMode to false can help.

Parameters:
mode  if false then current record is not fetched. You should explicitly call fetch method if you want to fetch it.

void dbAnyCursor::setSelectionLimit size_t    lim [inline]
 

Specify maximal number of records to be selected

oid_t* dbAnyCursor::toArrayOfOid oid_t *    arr
 

Extract OIDs of selected recrods in array

Parameters:
arr  if arr is not null, then this array is used as destination (it should be at least selection.nRows long)
If arr is null, then new array is created by new oid_t[] and returned by this method
Returns:
if arr is not null, then arr, otherwise array created by this method

void dbAnyCursor::unfreeze  
 

Unfreeze cursor. This method starts new transaction and restore state of the cursor

void dbAnyCursor::unsetSelectionLimit   [inline]
 

Remove selection limit

void dbAnyCursor::update   [inline]
 

Update current record. You should changed value of current record before and then call update method to save changes to the database


The documentation for this class was generated from the following file:
Generated on Fri Nov 15 21:06:29 2002 for FastDB by doxygen1.2.15