PX_get_record2 Returns record in Paradox file
#include <paradox.h>
int PX_get_record2(pxdoc_t *pxdoc, int recno, char *data, int *deleted, pxdatablockinfo_t *pxdbinfo)
This function is similar to PX_get_record(3) but takes two extra
parameters. If *deleted is set to 1 the function will consider any
record in the database, even those which are deleted. If *pxdbinfo is
not NULL, the function will return some information about the data block
where the record has been read from. You will have to allocate memory
for pxdbinfo before calling PX_get_record2.
On return *deleted will be set to 1 if the requested record is
deleted or 0 if it is not deleted. The struct pxdatablockinfo_t has
the following fields:
"blockpos
File positon where the block starts. The first six bytes
of the block contain the header, followed by the record data.
"recordpos
File position where the requested record starts.
"size
Size of the data block without the six bytes for the header.
"recno
Record number within the data block. The first record in the
block has number 0.
"numrecords
The number of records in this block.
"number
The number of the data block.
This function may return records with invalid data, because records
are not explizitly marked as deleted, but rather the size of a valid data
block is modified. A data block is a fixed size area in the file which
holds a certain number of records. If for some
reason a data block has newer been completely filled with records, the
algorithmn anticipates deleted records in this data block, which are not
there. This often happens with the last data block in a file, which is
likely to not being fully filled with records.
If you accessing several records, do it in ascending order, because
this is the most efficient way.
Note:
This function is deprecated.
Use PX_retrieve_record(3) instead
Returns 0 on success and -1 on failure.
PX_get_field(3), PX_get_record(3)
This manual page was written by Uwe Steinmann uwe@steinmann.cx.