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

# DlpOpenDB(3)

elementary operations on Palm databases

## NAME

**DlpOpenDB**, **DlpCreateDB**, **DlpCloseDB**, **DlpDeleteDB** – elementary operations on Palm databases

## LIBRARY

*libpconn*

## SYNOPSIS

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

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

*int*\

**DlpOpenDB**(*PConnection \*pconn*, *int card*, *const char \*name*, *ubyte mode*, *ubyte \*dbhandle*);

*int*\

**DlpCreateDB**(*PConnection \*pconn*, *const struct dlp\_createdbreq \*newdb*, *ubyte \*dbhandle*);

*int*\

**DlpCloseDB**(*PConnection \*pconn*, *ubyte dbhandle*);

*int*\

**DlpDeleteDB**(*PConnection \*pconn*, *const int card*, *const char \*name*);

## DESCRIPTION

**DlpOpenDB** opens an existing database on the Palm, similar to opening a file.

*card* specifies the number of the memory card on which the database is stored. This is usually 0.

*name* specifies the name of the database to open. It is case-sensitive, and does not include the “.pdb” or “.prc” extension.

*mode* specifies how to open the database. It is the bitwise-or of one or more of the following:

- DLPCMD\_MODE\_SECRET

  Show private records.

- DLPCMD\_MODE\_EXCLUSIVE

  I don't know what this does.

- DLPCMD\_MODE\_WRITE

  Open database for writing.

- DLPCMD\_MODE\_READ

  Open database for reading.

*dbhandle* is filled in with a database handle, similar to a file descriptor, which will be used to refer to the database in later operations.

**DlpCreateDB** creates and opens a new database on the Palm.

*newdb* is the following structure:

```
struct dlp_createdbreq
{
	udword creator;
	udword type;
	ubyte card;
	uword flags;
	uword version;
	char name[DLPCMD_DBNAME_LEN];
};
```

where *creator* and *type* are four-character constants, with the first character in the most-significant eight bits; *card* specifies the number of the memory card on which to create the database, usually 0; *flags* are the same as the *flags* argument to **DlpOpenDB**; *version* is a version number; and *name* specifies the name of the new database.

*dbhandle* is filled in with a database handle, as with **OpenDB**.

**DlpCloseDB** closes the open database whose handle is *dbhandle*. If *dbhandle* is the special value DLPCMD\_CLOSEALLDBS, then all open databases are closed.

**DlpDeleteDB** deletes a database, which must already be closed.

*card* specifies the number of the memory card on which the database is stored, usually 0.

*name* specifies the name of the database to delete. It does not include the “.pdb” or “.prc” extension.

## RETURN VALUE

These functions all return 0 if they are successful, or a negative value in case of error.

## SEE ALSO

[libpconn(3)](/libpconn/3.md).
