Fred Drake | 295da24 | 1998-08-10 19:42:37 +0000 | [diff] [blame] | 1 | \section{\module{dbm} --- |
Fred Drake | bbac432 | 1999-02-20 00:14:17 +0000 | [diff] [blame] | 2 | Simple ``database'' interface} |
Fred Drake | b91e934 | 1998-07-23 17:59:49 +0000 | [diff] [blame] | 3 | |
Fred Drake | bbac432 | 1999-02-20 00:14:17 +0000 | [diff] [blame] | 4 | \declaremodule{builtin}{dbm} |
Fred Drake | a54a887 | 1999-03-02 17:03:42 +0000 | [diff] [blame] | 5 | \platform{Unix} |
Fred Drake | b91e934 | 1998-07-23 17:59:49 +0000 | [diff] [blame] | 6 | \modulesynopsis{The standard ``database'' interface, based on ndbm.} |
| 7 | |
Guido van Rossum | 5fdeeea | 1994-01-02 01:22:07 +0000 | [diff] [blame] | 8 | |
Fred Drake | bbac432 | 1999-02-20 00:14:17 +0000 | [diff] [blame] | 9 | The \module{dbm} module provides an interface to the \UNIX{} |
Fred Drake | 7c25f3d | 2000-09-15 21:31:31 +0000 | [diff] [blame] | 10 | (\code{n})\code{dbm} library. Dbm objects behave like mappings |
Guido van Rossum | 0bf8475 | 1995-07-07 22:55:57 +0000 | [diff] [blame] | 11 | (dictionaries), except that keys and values are always strings. |
| 12 | Printing a dbm object doesn't print the keys and values, and the |
Fred Drake | f6863c1 | 1999-03-02 16:37:17 +0000 | [diff] [blame] | 13 | \method{items()} and \method{values()} methods are not supported. |
Guido van Rossum | 0bf8475 | 1995-07-07 22:55:57 +0000 | [diff] [blame] | 14 | |
Fred Drake | 7c25f3d | 2000-09-15 21:31:31 +0000 | [diff] [blame] | 15 | This module can be used with the ``classic'' ndbm interface, the BSD |
| 16 | DB compatibility interface, or the GNU GDBM compatibility interface. |
| 17 | On \UNIX, the \program{configure} script will attempt to locate the |
| 18 | appropriate header file to simplify building this module. |
Guido van Rossum | 5fdeeea | 1994-01-02 01:22:07 +0000 | [diff] [blame] | 19 | |
Fred Drake | 7c25f3d | 2000-09-15 21:31:31 +0000 | [diff] [blame] | 20 | The module defines the following: |
Guido van Rossum | 5fdeeea | 1994-01-02 01:22:07 +0000 | [diff] [blame] | 21 | |
Guido van Rossum | 5fdeeea | 1994-01-02 01:22:07 +0000 | [diff] [blame] | 22 | \begin{excdesc}{error} |
Fred Drake | bbac432 | 1999-02-20 00:14:17 +0000 | [diff] [blame] | 23 | Raised on dbm-specific errors, such as I/O errors. |
| 24 | \exception{KeyError} is raised for general mapping errors like |
| 25 | specifying an incorrect key. |
Guido van Rossum | 5fdeeea | 1994-01-02 01:22:07 +0000 | [diff] [blame] | 26 | \end{excdesc} |
| 27 | |
Fred Drake | 7c25f3d | 2000-09-15 21:31:31 +0000 | [diff] [blame] | 28 | \begin{datadesc}{library} |
| 29 | Name of the \code{ndbm} implementation library used. |
| 30 | \end{datadesc} |
| 31 | |
| 32 | \begin{funcdesc}{open}{filename\optional{, flag\optional{, mode}}} |
Guido van Rossum | 0bf8475 | 1995-07-07 22:55:57 +0000 | [diff] [blame] | 33 | Open a dbm database and return a dbm object. The \var{filename} |
| 34 | argument is the name of the database file (without the \file{.dir} or |
Fred Drake | 7c25f3d | 2000-09-15 21:31:31 +0000 | [diff] [blame] | 35 | \file{.pag} extensions; note that the BSD DB implementation of the |
| 36 | interface will append the extension \file{.db} and only create one |
| 37 | file). |
Guido van Rossum | 0bf8475 | 1995-07-07 22:55:57 +0000 | [diff] [blame] | 38 | |
Fred Drake | 7c25f3d | 2000-09-15 21:31:31 +0000 | [diff] [blame] | 39 | The optional \var{flag} argument must be one of these values: |
| 40 | |
| 41 | \begin{tableii}{c|l}{code}{Value}{Meaning} |
| 42 | \lineii{'r'}{Open existing database for reading only (default)} |
| 43 | \lineii{'w'}{Open existing database for reading and writing} |
| 44 | \lineii{'c'}{Open database for reading and writing, creating it if |
| 45 | it doesn't exist} |
| 46 | \lineii{'n'}{Always create a new, empty database, open for reading |
| 47 | and writing} |
| 48 | \end{tableii} |
Guido van Rossum | 0bf8475 | 1995-07-07 22:55:57 +0000 | [diff] [blame] | 49 | |
| 50 | The optional \var{mode} argument is the \UNIX{} mode of the file, used |
| 51 | only when the database has to be created. It defaults to octal |
| 52 | \code{0666}. |
Guido van Rossum | 5fdeeea | 1994-01-02 01:22:07 +0000 | [diff] [blame] | 53 | \end{funcdesc} |
Fred Drake | 4f21d54 | 1999-04-05 22:18:12 +0000 | [diff] [blame] | 54 | |
| 55 | |
| 56 | \begin{seealso} |
| 57 | \seemodule{anydbm}{Generic interface to \code{dbm}-style databases.} |
Fred Drake | 7c25f3d | 2000-09-15 21:31:31 +0000 | [diff] [blame] | 58 | \seemodule{gdbm}{Similar interface to the GNU GDBM library.} |
Fred Drake | 4f21d54 | 1999-04-05 22:18:12 +0000 | [diff] [blame] | 59 | \seemodule{whichdb}{Utility module used to determine the type of an |
| 60 | existing database.} |
| 61 | \end{seealso} |