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.
Published date: 05/24/2022
Last modified date: 02/24/2022