---
name: "DlpReadRecordIDList"
section: "3"
platform: "linux"
package: "coldsync"
version: "3.0+pre3-3"
release: "Debian 4.0 (Etch)"
platforms: ["linux"]
url: "https://new.carta.tech/DlpReadRecordIDList"
---

# DlpReadRecordIDList(3)

read list of record IDs from a Palm database

## NAME

**DlpReadRecordIDList** – read list of record IDs from a Palm database

## LIBRARY

*libpconn*

## SYNOPSIS

**#include \<palm.h\>**

**#include \<pconn/pconn.h\>**

*int*\

**DlpReadRecordIDList**(*PConnection \*pconn*, *const ubyte handle*, *const ubyte flags*, *const uword start*, *const uword max*, *uword \*numread*, *udword recids\[\]*);

## DESCRIPTION

**DlpReadRecordIDList** reads a list of record IDs found in a database.

*handle* is the database handle given by **DlpOpenDB**.

*flags* specifies flags. The only flag defined so far is DLPCMD\_RRIDFLAG\_SORT, which says to sort the database before returning the list of record IDs.

*start* specifies the index of the first record to read. Use 0 to start reading at the beginning.

*max* specifies the maximum number of record IDs to return. The special value DLPC\_RRECIDL\_TOEND says to return as many entries as possible. You may find it useful to call **DlpReadOpenDBInfo**() to find out how many records there are in the database.

*numread* is filled in with the number of entries actually read.

*recids* is filled in with record IDs.

## RETURN VALUE

**DlpReadRecordIDList** returns 0 if successful, or a negative value otherwise.

## SEE ALSO

[libpconn(3)](/libpconn/3.md), [DlpOpenDB(3)](/DlpOpenDB/3.md), [DlpReadOpenDBInfo(3)](/DlpReadOpenDBInfo/3.md).

## NOTES

The Palm may not return as many entries as you want. In the author's experience, the maximum number of entries returned at one time is around 500. To read all of the records, you might need to call **DlpReadRecordIDList** inside a loop, *e.g.*:

```
uword numrecs;		// # of records in database
uword ihave;		// # of record IDs read so far
udword recids[FOO];	// Array of record IDs
ihave = 0;
while (ihave < numrecs)
{
	uword num_read;		// # record IDs read this time around
	DlpReadRecordIDList(pconn, dbh, 0,
			    ihave,
			    numrecs - ihave,
			    &num_read,
			    recids + ihave);
	ihave += num_read;
}
```
