List of all members.
Public Member Functions |
int | getNumberOfRecords () const |
void | remove () |
bool | isEmpty () const |
oid_t | getOid () |
bool | isUpdateCursor () const |
bool | isLimitReached () const |
int | select (dbQuery &query, dbCursorType aType, void *paramStruct=NULL) |
oid_t * | toArrayOfOid (oid_t *arr) const |
int | select (dbQuery &query, void *paramStruct=NULL) |
int | select (char_t const *condition, dbCursorType aType, void *paramStruct=NULL) |
int | select (char_t const *condition, void *paramStruct=NULL) |
int | select (dbCursorType aType) |
int | select () |
int | selectByKey (char_t const *key, void const *value) |
int | selectByKey (dbFieldDescriptor *field, void const *value) |
int | selectByKeyRange (char_t const *key, void const *minValue, void const *maxValue, bool ascent=true) |
int | selectByKeyRange (dbFieldDescriptor *field, void const *minValue, void const *maxValue, bool ascent=true) |
bool | update () |
void | removeAll () |
void | removeAllSelected () |
void | setSelectionLimit (size_t lim) |
void | unsetSelectionLimit () |
void | setPrefetchMode (bool mode) |
bool | isIncremental () |
bool | hasIncrementalHint () |
void | enableCheckForDuplicates (bool enabled) |
void | reset () |
bool | isLast () const |
bool | isFirst () const |
void | freeze () |
void | unfreeze () |
bool | skip (int n) |
int | seek (oid_t oid) |
dbTableDescriptor * | getTable () |
bool | isInSelection (oid_t oid) |
void | fetch () |
bool | hasNext () const |
bool | hasCurrent () const |
| dbAnyCursor (dbCursorType aType=dbCursorViewOnly) |
void | link (dbL2List *elem) |
void | unlink () |
bool | isEmpty () |
Public Attributes |
dbL2List * | next |
dbL2List * | prev |
Protected Member Functions |
void | checkForDuplicates () |
bool | isMarked (oid_t oid) |
void | deallocateBitmap () |
void | mark (oid_t oid) |
void | setStatementLimit (dbQuery const &q) |
void | truncateSelection () |
bool | add (oid_t oid) |
byte * | fetchNext () |
byte * | fetchPrev () |
byte * | fetchFirst () |
byte * | fetchLast () |
bool | gotoNext () |
bool | gotoPrev () |
bool | gotoFirst () |
bool | gotoLast () |
bool | moveNext () |
bool | movePrev () |
void | setCurrent (dbAnyReference const &ref) |
void | setTable (dbTableDescriptor *aTable) |
void | setRecord (void *rec) |
| dbAnyCursor (dbTableDescriptor &aTable, dbCursorType aType, byte *rec) |
Protected Attributes |
dbDatabase * | db |
dbTableDescriptor * | table |
dbCursorType | type |
dbCursorType | defaultType |
dbSelection | selection |
bool | allRecords |
oid_t | firstId |
oid_t | lastId |
oid_t | currId |
byte * | record |
size_t | limit |
dbGetTie | tie |
void * | paramBase |
bool | eliminateDuplicates |
bool | checkForDuplicatedIsEnabled |
bool | prefetch |
bool | removed |
bool | lastRecordWasDeleted |
size_t | stmtLimitStart |
size_t | stmtLimitLen |
size_t | nSkipped |
dbAbstractIterator * | iterator |
dbBtreeIterator | btreeIterator |
dbRtreeIterator | rtreeIterator |
dbTableIterator | tableIterator |
Friends |
class | dbDatabase |
class | dbHashTable |
class | dbRtreePage |
class | dbBtreePage |
class | dbRtreeIterator |
class | dbBtreeIterator |
class | dbTableIterator |
class | dbThickBtreePage |
class | dbSubSql |
class | dbStatement |
class | dbServer |
class | dbAnyContainer |
class | dbCLI |
class | JniResultSet |
Detailed Description
Base class for all cursors
Member Function Documentation
void dbAnyCursor::enableCheckForDuplicates |
( |
bool |
enabled |
) |
[inline] |
Enable or disable duplicates checking (if programmer knows that disjuncts in query do not intersect, then he can disable duplicate checking and avoid bitmap allocation
void dbAnyCursor::fetch |
( |
|
) |
[inline] |
Fetch current record. You should use this method only if prefetch mode is disabled
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 |
( |
|
) |
const [inline] |
Get number of selected records
- Returns:
- number of selected records
oid_t dbAnyCursor::getOid |
( |
|
) |
[inline] |
Get current reocrd OID
- Returns:
- current record OID or 0 if thereis no current record
Get descriptor of the table.
- Returns:
- descriptor of the table associated with the cursor
bool dbAnyCursor::hasCurrent |
( |
|
) |
const [inline] |
Check if there is current record in the selection
bool dbAnyCursor::hasIncrementalHint |
( |
|
) |
[inline] |
Check if cursor has dbIncrementalType.
- Returns:
- whether cursor has incremental hint or not
bool dbAnyCursor::hasNext |
( |
|
) |
const |
Check if there is more records in the selection
bool dbAnyCursor::isEmpty |
( |
|
) |
const [inline] |
Checks whether selection is empty
- Returns:
- true if there is no current record
bool dbAnyCursor::isFirst |
( |
|
) |
const |
Check whether current record is the first one in the selection
- Returns:
- true if prev() method will return
NULL
bool dbAnyCursor::isIncremental |
( |
|
) |
[inline] |
Check if cursor is incremental. Incremental cursor is used only when type is dbCursorIncremental. But even if the type of the cursor is dbCursorIncremental, the cursor may not always be incremental - it depends on a query. Queries containing order by clause except ordering by index key, can not be executed incrementally. In case of incremental cursor, select() returns 0 if no record is selected or 1 if selection is not empty, but precise number of selected records is not reported since it is not known.
- Returns:
- whether cursor is incremental or not.
bool dbAnyCursor::isInSelection |
( |
oid_t |
oid |
) |
|
Check if record with specified OID is in selection
- Returns:
true
if record with such OID was selected
bool dbAnyCursor::isLast |
( |
|
) |
const |
Check whether current record is the last one in the selection
- Returns:
- true if next() method will return
NULL
bool dbAnyCursor::isLimitReached |
( |
|
) |
const [inline] |
Checks whether limit for number of selected reacord is reached
- Returns:
- true if limit is reached
bool dbAnyCursor::isUpdateCursor |
( |
|
) |
const [inline] |
Check whether this cursor can be used for update
- Returns:
- true if it is update cursor
void dbAnyCursor::remove |
( |
|
) |
|
void dbAnyCursor::removeAll |
( |
|
) |
[inline] |
Remove all records in the table
void dbAnyCursor::removeAllSelected |
( |
|
) |
|
Remove all selected records
void dbAnyCursor::reset |
( |
|
) |
|
int dbAnyCursor::seek |
( |
oid_t |
oid |
) |
|
Position cursor on the record with the specified OID
- Parameters:
-
| oid | object identifier of record |
- Returns:
- poistion of the record in the selection or -1 if record with such OID is not in selection
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 |
( |
char_t 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 |
( |
dbCursorType |
aType |
) |
[inline] |
Select all records from the table
- Parameters:
-
| aType | cursor type: dbCursorForUpdate, dbCursorViewOnly |
- Returns:
- number of selected records
int dbAnyCursor::select |
( |
char_t 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 |
( |
|
) |
[inline] |
Select all records from the table with default cursor type
- Returns:
- number of selected records
int dbAnyCursor::select |
( |
dbQuery & |
query, |
|
|
dbCursorType |
aType, |
|
|
void * |
paramStruct = NULL | |
|
) |
| | |
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
Referenced by dbTimeSeriesProcessor< T >::getFirstInterval(), dbTimeSeriesProcessor< T >::getFirstTime(), dbTimeSeriesProcessor< T >::getInterval(), dbTimeSeriesProcessor< T >::getLastInterval(), dbTimeSeriesProcessor< T >::getLastTime(), dbTimeSeriesProcessor< T >::getNumberOfElements(), dbTimeSeriesProcessor< T >::remove(), and dbTimeSeriesProcessor< T >::select().
Select all records from the table with specfied value of the key
- Parameters:
-
| field | key field |
| value | searched value of the key |
- Returns:
- number of selected records
int dbAnyCursor::selectByKey |
( |
char_t const * |
key, |
|
|
void const * |
value | |
|
) |
| | |
Select all records from the table with specfied value of the key
- Parameters:
-
| key | name of the key field |
| value | searched value of the key |
- Returns:
- number of selected records
int dbAnyCursor::selectByKeyRange |
( |
char_t const * |
key, |
|
|
void const * |
minValue, |
|
|
void const * |
maxValue, |
|
|
bool |
ascent = true | |
|
) |
| | |
Select all records from the table with specfied range of the key values
- Parameters:
-
| key | name of the key field |
| minValue | inclusive low bound for key values, if NULL then there is no low bound |
| maxValue | inclusive high bound for key values, if NULL then there is no high bound |
| ascent | key order: true - ascending order, false - descending order |
- Returns:
- number of selected records
int dbAnyCursor::selectByKeyRange |
( |
dbFieldDescriptor * |
field, |
|
|
void const * |
minValue, |
|
|
void const * |
maxValue, |
|
|
bool |
ascent = true | |
|
) |
| | |
Select all records from the table with specfied range of the key values
- Parameters:
-
| field | key field |
| minValue | inclusive low bound for key values, if NULL then there is no low bound |
| maxValue | inclusive high bound for key values, if NULL then there is no high bound |
| ascent | key order: true - ascending order, false - descending order |
- 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] |
bool dbAnyCursor::skip |
( |
int |
n |
) |
|
Skip specified number of records
- Parameters:
-
| n | if positive then skip n records forward, if negative then skip -n records backward |
- Returns:
true
if specified number of records was successfully skipped, false
if there is no next (n > 0
) or previous (n < 0
) record in the selction.
oid_t* dbAnyCursor::toArrayOfOid |
( |
oid_t * |
arr |
) |
const |
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
Referenced by dbCursor< dbTimeSeriesBlock< T > >::toArray().
void dbAnyCursor::unfreeze |
( |
|
) |
|
Unfreeze cursor. This method starts new transaction and restore state of the cursor
void dbAnyCursor::unsetSelectionLimit |
( |
|
) |
[inline] |
bool 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.
- Returns:
- true if record was successfully updated, false if update cause unique constraint violation
Referenced by dbTimeSeriesProcessor< T >::remove().
The documentation for this class was generated from the following file: