ixRetrieveMoreRecordData
Name
ixRetrieveMoreRecordData
Synopsis
ixRetrieveMoreRecordData(OnixIndexManagerT IndexManager, UCharT *DataBuff, size_t DataBuffSize, size_t *ReturnedDataSize, OnixDataCursorT *DataCursor, StatusCodeT *Status)
Arguments
IndexManager: An index manager created by a call to ixCreateIndexManager. It must have been used to open an index using ixOpenIndex. A retrieval session in progress must also have been started using ixStartRetrievalSession.
DataBuff: A pointer to the buffer in which you would like the record data placed.
DataBuffSize: The size of DataBuff in bytes.
ReturnedDataSize: A pointer to an integer of size_t (unsigned int). The number of bytes returned from ixRetrieveRecordData will be placed here.
DataCursor: A DataCursor which has been used to obtain record data using a call to ixRetrieveRecordData. When all of the data has been returned, the value Done in the DataCursor is set to BooleanTrue. (BooleanFalse otherwise).
Status: A pointer to a value of type StatusCodeT representing any error conditions.
Returns
Nothing.
If an error occurred, Status will be set to the error number.
Description
If a call to ixRetrieveRecordData did not retrieve all of the data associated with a given record, one or more calls to ixRetrieveMoreRecordData may be used to obtain the rest. The state of the retrieval is kept in the DataCursor. When all of the data has been returned, the value Done in the DataCursor is set to BooleanTrue.
Pseudo Code for retrieving all of the data associated with a given record is as follows: (Note: not complete code. Portions have been left out for clarity.)
ixOpenIndex();
ixStartRetrievalSession();
// gets data associated with record number 10.
char myBuffer[255];
size_t datasize;
ixRetrieveRecordData( IndexManager, myBuffer, 255, &datasize,
10, DataCursor, Status );
// Do something with the data here.
while(DataCursor.Done == BooleanFalse) {
ixRetrieveMoreRecordData(IndexManager, myBuffer, 255,
&datasize, 10, DataCursor, Status );
// Do something with the data here.
}
ixEndRetrievalSession();
ixCloseIndex();
See Also
Storing Data with Records
ixRetrieveRecordData, ixStoreRecordData