Guidelines

When subclassing IliTable, the following guidelines should be respected:

  • The following virtual member functions may be overloaded for both one- and two-tier tables:

Member Function

Overload

getRowsCount

mandatory

getValue

mandatory

updateRow

optional

insertRow

optional

deleteRow

optional

moveRow

optional

allowRowMove

optional

updateRowInCache

optional

insertRowInCache

optional

deleteRowInCache

optional

  • The following virtual member functions may be overloaded for two-tier tables:

Member Function

Overload

clearRows

mandatory

select

mandatory

isSelectDone

mandatory

fetchCompleted

optional

fetchNext

optional

fetchAll

optional

  • The subclass should be designed to notify the Data Access library when certain events occur. Notification is performed by calling the appropriate function from the following:

Member Function

When Called

allRowsDeleted

Called when the clearRows member function

is called.

tableChanged

Called when the IliTable object has undergone

a significant number of changes.

rowInserted

Called just after a new row has been inserted

in the table.

rowsInserted

Called just after a sequence of rows has been inserted.

Note that instead of calling this member function,

the rowInserted member function may be

called repeatedly, once for each row.

rowToBeChanged

Called just before a row is changed.

rowChanged

Called just after a row has changed.

rowToBeDeleted

Called just before a row is removed.

rowDeleted

Called just after a row has been removed.

rowMoved

Called just after a row has moved

to another position.

rowsExchanged

Called just after two rows have exchanged positions.

rowFetched

Called just after a new row has been fetched

from a remote database and inserted into

the local row cache (the rowInserted

member function must also be called).

rowsFetched

Called just after a sequence of rows

has been fetched. Note that instead of calling

this member function, the rowFetched

member function may be called repeatedly,

once for each row.

cellChanged

Called just after a cell has changed.

If more than one cell has changed in a row,

it is preferable to call the rowChanged

member function once, instead of

calling cellChanged many times.

raiseError

Called each time an error occurs.

The error is described by

an IliErrorMessage object.

Note that in many instances, the implementor of an IliTable object can choose to notify certain events by calling one or another member function.

For instance, if two cells in a given row are changed, the IliTable object implementor can choose to do one of the following:

  • Call cellChanged twice.

or

  • Call rowChanged once.

Similarly, the insertion of two or more consecutive rows in the table, can be notified in one of the following ways:

  • By repeatedly calling rowInserted, once for each row.

or

  • By calling rowsInserted once.

As a consequence, when a given event can be notified either by calling one member function or another, an IliTable object using a table hook to monitor changes undergone by the table should overload both member functions, otherwise some events may be missed.