source: branches/samba-3.3.x/docs/manpages/ldb.3@ 221

Last change on this file since 221 was 221, checked in by Herwig Bauernfeind, 16 years ago

Update Samba 3.3 to 3.3.1

File size: 11.0 KB
Line 
1.\" Title: ldb
2.\" Author: [see the "Author" section]
3.\" Generator: DocBook XSL Stylesheets v1.74.0 <http://docbook.sf.net/>
4.\" Date: 02/24/2009
5.\" Manual: C Library Functions
6.\" Source: Samba 3.3
7.\" Language: English
8.\"
9.TH "LDB" "3" "02/24/2009" "Samba 3\&.3" "C Library Functions"
10.\" -----------------------------------------------------------------
11.\" * (re)Define some macros
12.\" -----------------------------------------------------------------
13.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
14.\" toupper - uppercase a string (locale-aware)
15.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
16.de toupper
17.tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ
18\\$*
19.tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz
20..
21.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
22.\" SH-xref - format a cross-reference to an SH section
23.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
24.de SH-xref
25.ie n \{\
26.\}
27.toupper \\$*
28.el \{\
29\\$*
30.\}
31..
32.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
33.\" SH - level-one heading that works better for non-TTY output
34.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
35.de1 SH
36.\" put an extra blank line of space above the head in non-TTY output
37.if t \{\
38.sp 1
39.\}
40.sp \\n[PD]u
41.nr an-level 1
42.set-an-margin
43.nr an-prevailing-indent \\n[IN]
44.fi
45.in \\n[an-margin]u
46.ti 0
47.HTML-TAG ".NH \\n[an-level]"
48.it 1 an-trap
49.nr an-no-space-flag 1
50.nr an-break-flag 1
51\." make the size of the head bigger
52.ps +3
53.ft B
54.ne (2v + 1u)
55.ie n \{\
56.\" if n (TTY output), use uppercase
57.toupper \\$*
58.\}
59.el \{\
60.nr an-break-flag 0
61.\" if not n (not TTY), use normal case (not uppercase)
62\\$1
63.in \\n[an-margin]u
64.ti 0
65.\" if not n (not TTY), put a border/line under subheading
66.sp -.6
67\l'\n(.lu'
68.\}
69..
70.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71.\" SS - level-two heading that works better for non-TTY output
72.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
73.de1 SS
74.sp \\n[PD]u
75.nr an-level 1
76.set-an-margin
77.nr an-prevailing-indent \\n[IN]
78.fi
79.in \\n[IN]u
80.ti \\n[SN]u
81.it 1 an-trap
82.nr an-no-space-flag 1
83.nr an-break-flag 1
84.ps \\n[PS-SS]u
85\." make the size of the head bigger
86.ps +2
87.ft B
88.ne (2v + 1u)
89.if \\n[.$] \&\\$*
90..
91.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
92.\" BB/BE - put background/screen (filled box) around block of text
93.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
94.de BB
95.if t \{\
96.sp -.5
97.br
98.in +2n
99.ll -2n
100.gcolor red
101.di BX
102.\}
103..
104.de EB
105.if t \{\
106.if "\\$2"adjust-for-leading-newline" \{\
107.sp -1
108.\}
109.br
110.di
111.in
112.ll
113.gcolor
114.nr BW \\n(.lu-\\n(.i
115.nr BH \\n(dn+.5v
116.ne \\n(BHu+.5v
117.ie "\\$2"adjust-for-leading-newline" \{\
118\M[\\$1]\h'1n'\v'+.5v'\D'P \\n(BWu 0 0 \\n(BHu -\\n(BWu 0 0 -\\n(BHu'\M[]
119.\}
120.el \{\
121\M[\\$1]\h'1n'\v'-.5v'\D'P \\n(BWu 0 0 \\n(BHu -\\n(BWu 0 0 -\\n(BHu'\M[]
122.\}
123.in 0
124.sp -.5v
125.nf
126.BX
127.in
128.sp .5v
129.fi
130.\}
131..
132.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
133.\" BM/EM - put colored marker in margin next to block of text
134.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
135.de BM
136.if t \{\
137.br
138.ll -2n
139.gcolor red
140.di BX
141.\}
142..
143.de EM
144.if t \{\
145.br
146.di
147.ll
148.gcolor
149.nr BH \\n(dn
150.ne \\n(BHu
151\M[\\$1]\D'P -.75n 0 0 \\n(BHu -(\\n[.i]u - \\n(INu - .75n) 0 0 -\\n(BHu'\M[]
152.in 0
153.nf
154.BX
155.in
156.fi
157.\}
158..
159.\" -----------------------------------------------------------------
160.\" * set default formatting
161.\" -----------------------------------------------------------------
162.\" disable hyphenation
163.nh
164.\" disable justification (adjust text to left margin only)
165.ad l
166.\" -----------------------------------------------------------------
167.\" * MAIN CONTENT STARTS HERE *
168.\" -----------------------------------------------------------------
169.SH "Name"
170ldb \- A light\-weight database library
171.SH "Synopsis"
172.sp
173.fam C
174.ps -1
175.nf
176#include <ldb\&.h>
177.fi
178.fam
179.ps +1
180.SH "description"
181.PP
182ldb is a light weight embedded database library and API\&. With a programming interface that is very similar to LDAP, ldb can store its data either in a tdb(3) database or in a real LDAP database\&.
183.PP
184When used with the tdb backend ldb does not require any database daemon\&. Instead, ldb function calls are processed immediately by the ldb library, which does IO directly on the database, while allowing multiple readers/writers using operating system byte range locks\&. This leads to an API with very low overheads, often resulting in speeds of more than 10x what can be achieved with a more traditional LDAP architecture\&.
185.PP
186In a taxonomy of databases ldb would sit half way between key/value pair databases (such as berkley db or tdb) and a full LDAP database\&. With a structured attribute oriented API like LDAP and good indexing capabilities, ldb can be used for quite sophisticated applications that need a light weight database, without the administrative overhead of a full LDAP installation\&.
187.PP
188Included with ldb are a number of useful command line tools for manipulating a ldb database\&. These tools are similar in style to the equivalent ldap command line tools\&.
189.PP
190In its default mode of operation with a tdb backend, ldb can also be seen as a "schema\-less LDAP"\&. By default ldb does not require a schema, which greatly reduces the complexity of getting started with ldb databases\&. As the complexity of you application grows you can take advantage of some of the optional schema\-like attributes that ldb offers, or you can migrate to using the full LDAP api while keeping your exiting ldb code\&.
191.PP
192If you are new to ldb, then I suggest starting with the manual pages for ldbsearch(1) and ldbedit(1), and experimenting with a local database\&. Then I suggest you look at the ldb_connect(3) and ldb_search(3) manual pages\&.
193.SH "TOOLS"
194.sp
195.RS 4
196.ie n \{\
197\h'-04'\(bu\h'+03'\c
198.\}
199.el \{\
200.sp -1
201.IP \(bu 2.3
202.\}
203
204ldbsearch(1)
205\- command line ldb search utility
206.RE
207.sp
208.RS 4
209.ie n \{\
210\h'-04'\(bu\h'+03'\c
211.\}
212.el \{\
213.sp -1
214.IP \(bu 2.3
215.\}
216
217ldbedit(1)
218\- edit all or part of a ldb database using your favourite editor
219.RE
220.sp
221.RS 4
222.ie n \{\
223\h'-04'\(bu\h'+03'\c
224.\}
225.el \{\
226.sp -1
227.IP \(bu 2.3
228.\}
229
230ldbadd(1)
231\- add records to a ldb database using LDIF formatted input
232.RE
233.sp
234.RS 4
235.ie n \{\
236\h'-04'\(bu\h'+03'\c
237.\}
238.el \{\
239.sp -1
240.IP \(bu 2.3
241.\}
242
243ldbdel(1)
244\- delete records from a ldb database
245.RE
246.sp
247.RS 4
248.ie n \{\
249\h'-04'\(bu\h'+03'\c
250.\}
251.el \{\
252.sp -1
253.IP \(bu 2.3
254.\}
255
256ldbmodify(1)
257\- modify records in a ldb database using LDIF formatted input
258.SH "FUNCTIONS"
259.sp
260.RS 4
261.ie n \{\
262\h'-04'\(bu\h'+03'\c
263.\}
264.el \{\
265.sp -1
266.IP \(bu 2.3
267.\}
268
269\fBldb_connect(3)\fR
270\- connect to a ldb backend
271.RE
272.sp
273.RS 4
274.ie n \{\
275\h'-04'\(bu\h'+03'\c
276.\}
277.el \{\
278.sp -1
279.IP \(bu 2.3
280.\}
281
282\fBldb_search(3)\fR
283\- perform a database search
284.RE
285.sp
286.RS 4
287.ie n \{\
288\h'-04'\(bu\h'+03'\c
289.\}
290.el \{\
291.sp -1
292.IP \(bu 2.3
293.\}
294
295\fBldb_add(3)\fR
296\- add a record to the database
297.RE
298.sp
299.RS 4
300.ie n \{\
301\h'-04'\(bu\h'+03'\c
302.\}
303.el \{\
304.sp -1
305.IP \(bu 2.3
306.\}
307
308\fBldb_delete(3)\fR
309\- delete a record from the database
310.RE
311.sp
312.RS 4
313.ie n \{\
314\h'-04'\(bu\h'+03'\c
315.\}
316.el \{\
317.sp -1
318.IP \(bu 2.3
319.\}
320
321\fBldb_modify(3)\fR
322\- modify a record in the database
323.RE
324.sp
325.RS 4
326.ie n \{\
327\h'-04'\(bu\h'+03'\c
328.\}
329.el \{\
330.sp -1
331.IP \(bu 2.3
332.\}
333
334\fBldb_errstring(3)\fR
335\- retrieve extended error information from the last operation
336.RE
337.sp
338.RS 4
339.ie n \{\
340\h'-04'\(bu\h'+03'\c
341.\}
342.el \{\
343.sp -1
344.IP \(bu 2.3
345.\}
346
347\fBldb_ldif_write(3)\fR
348\- write a LDIF formatted message
349.RE
350.sp
351.RS 4
352.ie n \{\
353\h'-04'\(bu\h'+03'\c
354.\}
355.el \{\
356.sp -1
357.IP \(bu 2.3
358.\}
359
360\fBldb_ldif_write_file(3)\fR
361\- write a LDIF formatted message to a file
362.RE
363.sp
364.RS 4
365.ie n \{\
366\h'-04'\(bu\h'+03'\c
367.\}
368.el \{\
369.sp -1
370.IP \(bu 2.3
371.\}
372
373\fBldb_ldif_read(3)\fR
374\- read a LDIF formatted message
375.RE
376.sp
377.RS 4
378.ie n \{\
379\h'-04'\(bu\h'+03'\c
380.\}
381.el \{\
382.sp -1
383.IP \(bu 2.3
384.\}
385
386\fBldb_ldif_read_free(3)\fR
387\- free the result of a ldb_ldif_read()
388.RE
389.sp
390.RS 4
391.ie n \{\
392\h'-04'\(bu\h'+03'\c
393.\}
394.el \{\
395.sp -1
396.IP \(bu 2.3
397.\}
398
399\fBldb_ldif_read_file(3)\fR
400\- read a LDIF message from a file
401.RE
402.sp
403.RS 4
404.ie n \{\
405\h'-04'\(bu\h'+03'\c
406.\}
407.el \{\
408.sp -1
409.IP \(bu 2.3
410.\}
411
412\fBldb_ldif_read_string(3)\fR
413\- read a LDIF message from a string
414.RE
415.sp
416.RS 4
417.ie n \{\
418\h'-04'\(bu\h'+03'\c
419.\}
420.el \{\
421.sp -1
422.IP \(bu 2.3
423.\}
424
425\fBldb_msg_find_element(3)\fR
426\- find an element in a ldb_message
427.RE
428.sp
429.RS 4
430.ie n \{\
431\h'-04'\(bu\h'+03'\c
432.\}
433.el \{\
434.sp -1
435.IP \(bu 2.3
436.\}
437
438\fBldb_val_equal_exact(3)\fR
439\- compare two ldb_val structures
440.RE
441.sp
442.RS 4
443.ie n \{\
444\h'-04'\(bu\h'+03'\c
445.\}
446.el \{\
447.sp -1
448.IP \(bu 2.3
449.\}
450
451\fBldb_msg_find_val(3)\fR
452\- find an element by value
453.RE
454.sp
455.RS 4
456.ie n \{\
457\h'-04'\(bu\h'+03'\c
458.\}
459.el \{\
460.sp -1
461.IP \(bu 2.3
462.\}
463
464\fBldb_msg_add_empty(3)\fR
465\- add an empty message element to a ldb_message
466.RE
467.sp
468.RS 4
469.ie n \{\
470\h'-04'\(bu\h'+03'\c
471.\}
472.el \{\
473.sp -1
474.IP \(bu 2.3
475.\}
476
477\fBldb_msg_add(3)\fR
478\- add a non\-empty message element to a ldb_message
479.RE
480.sp
481.RS 4
482.ie n \{\
483\h'-04'\(bu\h'+03'\c
484.\}
485.el \{\
486.sp -1
487.IP \(bu 2.3
488.\}
489
490\fBldb_msg_element_compare(3)\fR
491\- compare two ldb_message_element structures
492.RE
493.sp
494.RS 4
495.ie n \{\
496\h'-04'\(bu\h'+03'\c
497.\}
498.el \{\
499.sp -1
500.IP \(bu 2.3
501.\}
502
503\fBldb_msg_find_int(3)\fR
504\- return an integer value from a ldb_message
505.RE
506.sp
507.RS 4
508.ie n \{\
509\h'-04'\(bu\h'+03'\c
510.\}
511.el \{\
512.sp -1
513.IP \(bu 2.3
514.\}
515
516\fBldb_msg_find_uint(3)\fR
517\- return an unsigned integer value from a ldb_message
518.RE
519.sp
520.RS 4
521.ie n \{\
522\h'-04'\(bu\h'+03'\c
523.\}
524.el \{\
525.sp -1
526.IP \(bu 2.3
527.\}
528
529\fBldb_msg_find_double(3)\fR
530\- return a double value from a ldb_message
531.RE
532.sp
533.RS 4
534.ie n \{\
535\h'-04'\(bu\h'+03'\c
536.\}
537.el \{\
538.sp -1
539.IP \(bu 2.3
540.\}
541
542\fBldb_msg_find_string(3)\fR
543\- return a string value from a ldb_message
544.RE
545.sp
546.RS 4
547.ie n \{\
548\h'-04'\(bu\h'+03'\c
549.\}
550.el \{\
551.sp -1
552.IP \(bu 2.3
553.\}
554
555\fBldb_set_alloc(3)\fR
556\- set the memory allocation function to be used by ldb
557.RE
558.sp
559.RS 4
560.ie n \{\
561\h'-04'\(bu\h'+03'\c
562.\}
563.el \{\
564.sp -1
565.IP \(bu 2.3
566.\}
567
568\fBldb_set_debug(3)\fR
569\- set a debug handler to be used by ldb
570.RE
571.sp
572.RS 4
573.ie n \{\
574\h'-04'\(bu\h'+03'\c
575.\}
576.el \{\
577.sp -1
578.IP \(bu 2.3
579.\}
580
581\fBldb_set_debug_stderr(3)\fR
582\- set a debug handler for stderr output
583.SH "Author"
584.PP
585ldb was written by
586Andrew Tridgell\&.
587.PP
588If you wish to report a problem or make a suggestion then please see the
589: http://ldb.samba.org/
590web site for current contact and maintainer information\&.
591.PP
592ldb is released under the GNU Lesser General Public License version 2 or later\&. Please see the file COPYING for license details\&.
Note: See TracBrowser for help on using the repository browser.