[217] | 1 | <?xml version="1.0" encoding="iso-8859-1"?>
|
---|
| 2 | <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
---|
| 3 | <refentry id="ldb.3">
|
---|
| 4 |
|
---|
| 5 | <refmeta>
|
---|
| 6 | <refentrytitle>ldb</refentrytitle>
|
---|
| 7 | <manvolnum>3</manvolnum>
|
---|
| 8 | <refmiscinfo class="source">Samba</refmiscinfo>
|
---|
| 9 | <refmiscinfo class="manual">C Library Functions</refmiscinfo>
|
---|
| 10 | <refmiscinfo class="version">3.3</refmiscinfo>
|
---|
| 11 | </refmeta>
|
---|
| 12 |
|
---|
| 13 | <refnamediv>
|
---|
| 14 | <refname>ldb</refname>
|
---|
| 15 | <refclass>The Samba Project</refclass>
|
---|
| 16 | <refpurpose>A light-weight database library</refpurpose>
|
---|
| 17 | </refnamediv>
|
---|
| 18 |
|
---|
| 19 | <refsynopsisdiv>
|
---|
| 20 | <synopsis>#include <ldb.h></synopsis>
|
---|
| 21 | </refsynopsisdiv>
|
---|
| 22 |
|
---|
| 23 | <refsect1>
|
---|
| 24 | <title>description</title>
|
---|
| 25 |
|
---|
| 26 | <para>
|
---|
| 27 | ldb is a light weight embedded database library and API. With a
|
---|
| 28 | programming interface that is very similar to LDAP, ldb can store its
|
---|
| 29 | data either in a tdb(3) database or in a real LDAP database.
|
---|
| 30 | </para>
|
---|
| 31 |
|
---|
| 32 | <para>
|
---|
| 33 | When used with the tdb backend ldb does not require any database
|
---|
| 34 | daemon. Instead, ldb function calls are processed immediately by the
|
---|
| 35 | ldb library, which does IO directly on the database, while allowing
|
---|
| 36 | multiple readers/writers using operating system byte range locks. This
|
---|
| 37 | leads to an API with very low overheads, often resulting in speeds of
|
---|
| 38 | more than 10x what can be achieved with a more traditional LDAP
|
---|
| 39 | architecture.
|
---|
| 40 | </para>
|
---|
| 41 |
|
---|
| 42 | <para>
|
---|
| 43 | In a taxonomy of databases ldb would sit half way between key/value
|
---|
| 44 | pair databases (such as berkley db or tdb) and a full LDAP
|
---|
| 45 | database. With a structured attribute oriented API like LDAP and good
|
---|
| 46 | indexing capabilities, ldb can be used for quite sophisticated
|
---|
| 47 | applications that need a light weight database, without the
|
---|
| 48 | administrative overhead of a full LDAP installation.
|
---|
| 49 | </para>
|
---|
| 50 |
|
---|
| 51 | <para>
|
---|
| 52 | Included with ldb are a number of useful command line tools for
|
---|
| 53 | manipulating a ldb database. These tools are similar in style to the
|
---|
| 54 | equivalent ldap command line tools.
|
---|
| 55 | </para>
|
---|
| 56 |
|
---|
| 57 | <para>
|
---|
| 58 | In its default mode of operation with a tdb backend, ldb can also be
|
---|
| 59 | seen as a "schema-less LDAP". By default ldb does not require a
|
---|
| 60 | schema, which greatly reduces the complexity of getting started with
|
---|
| 61 | ldb databases. As the complexity of you application grows you can take
|
---|
| 62 | advantage of some of the optional schema-like attributes that ldb
|
---|
| 63 | offers, or you can migrate to using the full LDAP api while keeping
|
---|
| 64 | your exiting ldb code.
|
---|
| 65 | </para>
|
---|
| 66 |
|
---|
| 67 | <para>
|
---|
| 68 | If you are new to ldb, then I suggest starting with the manual pages
|
---|
| 69 | for ldbsearch(1) and ldbedit(1), and experimenting with a local
|
---|
| 70 | database. Then I suggest you look at the ldb_connect(3) and
|
---|
| 71 | ldb_search(3) manual pages.
|
---|
| 72 | </para>
|
---|
| 73 | </refsect1>
|
---|
| 74 |
|
---|
| 75 | <refsect1>
|
---|
| 76 | <title>TOOLS</title>
|
---|
| 77 |
|
---|
| 78 | <itemizedlist>
|
---|
| 79 | <listitem><para>
|
---|
| 80 | <application>ldbsearch(1)</application>
|
---|
| 81 | - command line ldb search utility
|
---|
| 82 | </para></listitem>
|
---|
| 83 |
|
---|
| 84 | <listitem><para>
|
---|
| 85 | <application>ldbedit(1)</application>
|
---|
| 86 | - edit all or part of a ldb database using your favourite editor
|
---|
| 87 | </para></listitem>
|
---|
| 88 |
|
---|
| 89 | <listitem><para>
|
---|
| 90 | <application>ldbadd(1)</application>
|
---|
| 91 | - add records to a ldb database using LDIF formatted input
|
---|
| 92 | </para></listitem>
|
---|
| 93 |
|
---|
| 94 | <listitem><para>
|
---|
| 95 | <application>ldbdel(1)</application>
|
---|
| 96 | - delete records from a ldb database
|
---|
| 97 | </para></listitem>
|
---|
| 98 |
|
---|
| 99 | <listitem><para>
|
---|
| 100 | <application>ldbmodify(1)</application>
|
---|
| 101 | - modify records in a ldb database using LDIF formatted input
|
---|
| 102 | </para></listitem>
|
---|
| 103 | </itemizedlist>
|
---|
| 104 | </refsect1>
|
---|
| 105 |
|
---|
| 106 | <refsect1>
|
---|
| 107 | <title>FUNCTIONS</title>
|
---|
| 108 |
|
---|
| 109 | <itemizedlist>
|
---|
| 110 | <listitem><para>
|
---|
| 111 | <function>ldb_connect(3)</function>
|
---|
| 112 | - connect to a ldb backend
|
---|
| 113 | </para></listitem>
|
---|
| 114 |
|
---|
| 115 | <listitem><para>
|
---|
| 116 | <function>ldb_search(3)</function>
|
---|
| 117 | - perform a database search
|
---|
| 118 | </para></listitem>
|
---|
| 119 |
|
---|
| 120 | <listitem><para>
|
---|
| 121 | <function>ldb_add(3)</function>
|
---|
| 122 | - add a record to the database
|
---|
| 123 | </para></listitem>
|
---|
| 124 |
|
---|
| 125 | <listitem><para>
|
---|
| 126 | <function>ldb_delete(3)</function>
|
---|
| 127 | - delete a record from the database
|
---|
| 128 | </para></listitem>
|
---|
| 129 |
|
---|
| 130 | <listitem><para>
|
---|
| 131 | <function>ldb_modify(3)</function>
|
---|
| 132 | - modify a record in the database
|
---|
| 133 | </para></listitem>
|
---|
| 134 |
|
---|
| 135 | <listitem><para>
|
---|
| 136 | <function>ldb_errstring(3)</function>
|
---|
| 137 | - retrieve extended error information from the last operation
|
---|
| 138 | </para></listitem>
|
---|
| 139 |
|
---|
| 140 | <listitem><para>
|
---|
| 141 | <function>ldb_ldif_write(3)</function>
|
---|
| 142 | - write a LDIF formatted message
|
---|
| 143 | </para></listitem>
|
---|
| 144 |
|
---|
| 145 | <listitem><para>
|
---|
| 146 | <function>ldb_ldif_write_file(3)</function>
|
---|
| 147 | - write a LDIF formatted message to a file
|
---|
| 148 | </para></listitem>
|
---|
| 149 |
|
---|
| 150 | <listitem><para>
|
---|
| 151 | <function>ldb_ldif_read(3)</function>
|
---|
| 152 | - read a LDIF formatted message
|
---|
| 153 | </para></listitem>
|
---|
| 154 |
|
---|
| 155 | <listitem><para>
|
---|
| 156 | <function>ldb_ldif_read_free(3)</function>
|
---|
| 157 | - free the result of a ldb_ldif_read()
|
---|
| 158 | </para></listitem>
|
---|
| 159 |
|
---|
| 160 | <listitem><para>
|
---|
| 161 | <function>ldb_ldif_read_file(3)</function>
|
---|
| 162 | - read a LDIF message from a file
|
---|
| 163 | </para></listitem>
|
---|
| 164 |
|
---|
| 165 | <listitem><para>
|
---|
| 166 | <function>ldb_ldif_read_string(3)</function>
|
---|
| 167 | - read a LDIF message from a string
|
---|
| 168 | </para></listitem>
|
---|
| 169 |
|
---|
| 170 | <listitem><para>
|
---|
| 171 | <function>ldb_msg_find_element(3)</function>
|
---|
| 172 | - find an element in a ldb_message
|
---|
| 173 | </para></listitem>
|
---|
| 174 |
|
---|
| 175 | <listitem><para>
|
---|
| 176 | <function>ldb_val_equal_exact(3)</function>
|
---|
| 177 | - compare two ldb_val structures
|
---|
| 178 | </para></listitem>
|
---|
| 179 |
|
---|
| 180 | <listitem><para>
|
---|
| 181 | <function>ldb_msg_find_val(3)</function>
|
---|
| 182 | - find an element by value
|
---|
| 183 | </para></listitem>
|
---|
| 184 |
|
---|
| 185 | <listitem><para>
|
---|
| 186 | <function>ldb_msg_add_empty(3)</function>
|
---|
| 187 | - add an empty message element to a ldb_message
|
---|
| 188 | </para></listitem>
|
---|
| 189 |
|
---|
| 190 |
|
---|
| 191 | <listitem><para>
|
---|
| 192 | <function>ldb_msg_add(3)</function>
|
---|
| 193 | - add a non-empty message element to a ldb_message
|
---|
| 194 | </para></listitem>
|
---|
| 195 |
|
---|
| 196 |
|
---|
| 197 | <listitem><para>
|
---|
| 198 | <function>ldb_msg_element_compare(3)</function>
|
---|
| 199 | - compare two ldb_message_element structures
|
---|
| 200 | </para></listitem>
|
---|
| 201 |
|
---|
| 202 |
|
---|
| 203 | <listitem><para>
|
---|
| 204 | <function>ldb_msg_find_int(3)</function>
|
---|
| 205 | - return an integer value from a ldb_message
|
---|
| 206 | </para></listitem>
|
---|
| 207 |
|
---|
| 208 |
|
---|
| 209 | <listitem><para>
|
---|
| 210 | <function>ldb_msg_find_uint(3)</function>
|
---|
| 211 | - return an unsigned integer value from a ldb_message
|
---|
| 212 | </para></listitem>
|
---|
| 213 |
|
---|
| 214 |
|
---|
| 215 | <listitem><para>
|
---|
| 216 | <function>ldb_msg_find_double(3)</function>
|
---|
| 217 | - return a double value from a ldb_message
|
---|
| 218 | </para></listitem>
|
---|
| 219 |
|
---|
| 220 |
|
---|
| 221 | <listitem><para>
|
---|
| 222 | <function>ldb_msg_find_string(3)</function>
|
---|
| 223 | - return a string value from a ldb_message
|
---|
| 224 | </para></listitem>
|
---|
| 225 |
|
---|
| 226 |
|
---|
| 227 | <listitem><para>
|
---|
| 228 | <function>ldb_set_alloc(3)</function>
|
---|
| 229 | - set the memory allocation function to be used by ldb
|
---|
| 230 | </para></listitem>
|
---|
| 231 |
|
---|
| 232 |
|
---|
| 233 | <listitem><para>
|
---|
| 234 | <function>ldb_set_debug(3)</function>
|
---|
| 235 | - set a debug handler to be used by ldb
|
---|
| 236 | </para></listitem>
|
---|
| 237 |
|
---|
| 238 |
|
---|
| 239 | <listitem><para>
|
---|
| 240 | <function>ldb_set_debug_stderr(3)</function>
|
---|
| 241 | - set a debug handler for stderr output
|
---|
| 242 | </para></listitem>
|
---|
| 243 | </itemizedlist>
|
---|
| 244 | </refsect1>
|
---|
| 245 |
|
---|
| 246 | <refsect1>
|
---|
| 247 | <title>Author</title>
|
---|
| 248 |
|
---|
| 249 | <para>
|
---|
| 250 | ldb was written by
|
---|
| 251 | <ulink url="http://samba.org/~tridge/">Andrew Tridgell</ulink>.
|
---|
| 252 | </para>
|
---|
| 253 |
|
---|
| 254 | <para>
|
---|
| 255 | If you wish to report a problem or make a suggestion then please see
|
---|
| 256 | the <ulink url="http://ldb.samba.org/"/> web site for
|
---|
| 257 | current contact and maintainer information.
|
---|
| 258 | </para>
|
---|
| 259 |
|
---|
| 260 | <para>
|
---|
| 261 | ldb is released under the GNU Lesser General Public License version 2
|
---|
| 262 | or later. Please see the file COPYING for license details.
|
---|
| 263 | </para>
|
---|
| 264 | </refsect1>
|
---|
| 265 | </refentry>
|
---|