mirror of
https://github.com/berkeleydb/libdb.git
synced 2024-11-16 17:16:25 +00:00
511 lines
24 KiB
HTML
511 lines
24 KiB
HTML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||
<head>
|
||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||
<title>Chapter 2. The DB Handle</title>
|
||
<link rel="stylesheet" href="apiReference.css" type="text/css" />
|
||
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
|
||
<link rel="start" href="index.html" title="Berkeley DB C API Reference" />
|
||
<link rel="up" href="index.html" title="Berkeley DB C API Reference" />
|
||
<link rel="prev" href="introduction.html" title="Chapter 1. Introduction to Berkeley DB APIs" />
|
||
<link rel="next" href="dbassociate.html" title="DB->associate()" />
|
||
</head>
|
||
<body>
|
||
<div xmlns="" class="navheader">
|
||
<div class="libver">
|
||
<p>Library Version 11.2.5.3</p>
|
||
</div>
|
||
<table width="100%" summary="Navigation header">
|
||
<tr>
|
||
<th colspan="3" align="center">Chapter 2.
|
||
The DB Handle
|
||
</th>
|
||
</tr>
|
||
<tr>
|
||
<td width="20%" align="left"><a accesskey="p" href="introduction.html">Prev</a> </td>
|
||
<th width="60%" align="center"> </th>
|
||
<td width="20%" align="right"> <a accesskey="n" href="dbassociate.html">Next</a></td>
|
||
</tr>
|
||
</table>
|
||
<hr />
|
||
</div>
|
||
<div class="chapter" lang="en" xml:lang="en">
|
||
<div class="titlepage">
|
||
<div>
|
||
<div>
|
||
<h2 class="title"><a id="db"></a>Chapter 2.
|
||
The DB Handle
|
||
</h2>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p>
|
||
The DB is the handle for a single Berkeley DB database. A Berkeley DB database
|
||
provides a mechanism for organizing key-data pairs of information. From the
|
||
perspective of some database systems, a Berkeley DB database could be thought of as
|
||
a single table within a larger database.
|
||
</p>
|
||
<p>
|
||
You create a DB handle using the <a class="xref" href="dbcreate.html" title="db_create">db_create</a>
|
||
<span>function.</span>
|
||
|
||
For most database activities, you must then open the handle using the
|
||
<a class="xref" href="dbopen.html" title="DB->open()">DB->open()</a>
|
||
method. When you are done with them, handles must be closed using the
|
||
<a class="xref" href="dbclose.html" title="DB->close()">DB->close()</a> method.
|
||
</p>
|
||
<p>
|
||
Alternatively, you can create a DB and then rename, remove or verify the database
|
||
without performing an open. See <a class="xref" href="dbrename.html" title="DB->rename()">DB->rename()</a>,
|
||
<a class="xref" href="dbremove.html" title="DB->remove()">DB->remove()</a> or
|
||
<a class="xref" href="dbverify.html" title="DB->verify()">DB->verify()</a> for information on these
|
||
activities.
|
||
</p>
|
||
<p>
|
||
It is possible to create databases such that they are organized within a
|
||
<span class="emphasis"><em>database environment</em></span>. Environments are optional for simple Berkeley
|
||
DB applications that do not use transactions, recovery, replication or any other
|
||
advanced features. For simple Berkeley DB applications, environments still offer some
|
||
advantages. For example, they provide some organizational
|
||
benefits on-disk (all databases are located on disk relative to the environment). Also,
|
||
if you are using multiple databases, then environments allow your databases to share a
|
||
common in-memory cache, which makes for more efficient usage of your hardware's
|
||
resources.
|
||
</p>
|
||
<p>
|
||
See <a class="link" href="env.html" title="Chapter 5. The DB_ENV Handle">DB_ENV</a> for information on using database
|
||
environments.
|
||
</p>
|
||
<p>
|
||
You specify the underlying organization of the data in the database (e.g. BTree, Hash,
|
||
Queue, and Recno) when you open the database. When you create a database,
|
||
you are free to specify any of the available database types. On subsequent opens,
|
||
you must either specify the access method used when you first opened the database, or
|
||
you can specify <code class="literal">DB_UNKNOWN</code> in order to have this information
|
||
retrieved for you. See the <a class="xref" href="dbopen.html" title="DB->open()">DB->open()</a>
|
||
method for information on specifying database types.
|
||
</p>
|
||
<div class="sect1" lang="en" xml:lang="en">
|
||
<div class="titlepage">
|
||
<div>
|
||
<div>
|
||
<h2 class="title" style="clear: both"><a id="dblist"></a>Database and Related Methods</h2>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="navtable">
|
||
<table border="1" width="80%">
|
||
<thead>
|
||
<tr>
|
||
<th>Database Operations</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbassociate.html" title="DB->associate()">DB->associate()</a>
|
||
</td>
|
||
<td>Associate a secondary index</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbassociate_foreign.html" title="DB->associate_foreign()">DB->associate_foreign()</a>
|
||
</td>
|
||
<td>Associate a foreign index</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbclose.html" title="DB->close()">DB->close()</a>
|
||
</td>
|
||
<td>Close a database</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbcompact.html" title="DB->compact()">DB->compact()</a>
|
||
</td>
|
||
<td>Compact a database</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbcreate.html" title="db_create">db_create</a>
|
||
</td>
|
||
<td>Create a database handle</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbdel.html" title="DB->del()">DB->del()</a>
|
||
</td>
|
||
<td>Delete items from a database</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dberr.html" title="DB->err()">DB->err()</a>
|
||
</td>
|
||
<td>Error message</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbexists.html" title="DB->exists()">DB->exists()</a>
|
||
</td>
|
||
<td>Return if an item appears in a database</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbfd.html" title="DB->fd()">DB->fd()</a>
|
||
</td>
|
||
<td>Return a file descriptor from a database</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbget.html" title="DB->get()">DB->get()</a>
|
||
</td>
|
||
<td>Get items from a database</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbget_byteswapped.html" title="DB->get_byteswapped()">DB->get_byteswapped()</a>
|
||
</td>
|
||
<td>Return if the underlying database is in host order</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbget_dbname.html" title="DB->get_dbname()">DB->get_dbname()</a>
|
||
</td>
|
||
<td>Return the file and database name</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbget_multiple.html" title="DB->get_multiple()">DB->get_multiple()</a>
|
||
</td>
|
||
<td>Return if the database handle references multiple databases</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbget_open_flags.html" title="DB->get_open_flags()">DB->get_open_flags()</a>
|
||
</td>
|
||
<td>Returns the flags specified to DB->open</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbget_type.html" title="DB->get_type()">DB->get_type()</a>
|
||
</td>
|
||
<td>Return the database type</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbjoin.html" title="DB->join()">DB->join()</a>
|
||
</td>
|
||
<td>Perform a database join on cursors</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbkey_range.html" title="DB->key_range()">DB->key_range()</a>
|
||
</td>
|
||
<td>Return estimate of key location</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbopen.html" title="DB->open()">DB->open()</a>
|
||
</td>
|
||
<td>Open a database</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbput.html" title="DB->put()">DB->put()</a>
|
||
</td>
|
||
<td>Store items into a database</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbremove.html" title="DB->remove()">DB->remove()</a>
|
||
</td>
|
||
<td>Remove a database</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbrename.html" title="DB->rename()">DB->rename()</a>
|
||
</td>
|
||
<td>Rename a database</td>
|
||
</tr>
|
||
<tr>
|
||
<td><a class="xref" href="dbset_priority.html" title="DB->set_priority()">DB->set_priority()</a>, <a class="xref" href="dbget_priority.html" title="DB->get_priority()">DB->get_priority()</a></td>
|
||
<td>Set/get cache page priority</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbstat.html" title="DB->stat()">DB->stat()</a>
|
||
</td>
|
||
<td>Database statistics</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbstat_print.html" title="DB->stat_print()">DB->stat_print()</a>
|
||
</td>
|
||
<td>Display database statistics</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbsync.html" title="DB->sync()">DB->sync()</a>
|
||
</td>
|
||
<td>Flush a database to stable storage</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbtruncate.html" title="DB->truncate()">DB->truncate()</a>
|
||
</td>
|
||
<td>Empty a database</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbupgrade.html" title="DB->upgrade()">DB->upgrade()</a>
|
||
</td>
|
||
<td>Upgrade a database</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbverify.html" title="DB->verify()">DB->verify()</a>
|
||
</td>
|
||
<td>Verify/salvage a database</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbcursor.html" title="DB->cursor()">DB->cursor()</a>
|
||
</td>
|
||
<td>Create a cursor handle</td>
|
||
</tr>
|
||
<tr>
|
||
<td colspan="2">
|
||
<span class="bold">
|
||
<strong>Database Configuration</strong>
|
||
</span>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbset_alloc.html" title="DB->set_alloc()">DB->set_alloc()</a>
|
||
</td>
|
||
<td>Set local space allocation functions</td>
|
||
</tr>
|
||
<tr>
|
||
<td><a class="xref" href="dbset_cachesize.html" title="DB->set_cachesize()">DB->set_cachesize()</a>, <a class="xref" href="dbget_cachesize.html" title="DB->get_cachesize()">DB->get_cachesize()</a></td>
|
||
<td>Set/get the database cache size</td>
|
||
</tr>
|
||
<tr>
|
||
<td><a class="xref" href="dbset_create_dir.html" title="DB->set_create_dir()">DB->set_create_dir()</a>, <a class="xref" href="dbget_create_dir.html" title="DB->get_create_dir()">DB->get_create_dir()</a></td>
|
||
<td>Set/get the directory in which a database is placed</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbset_dup_compare.html" title="DB->set_dup_compare()">DB->set_dup_compare()</a>
|
||
</td>
|
||
<td>Set a duplicate comparison function</td>
|
||
</tr>
|
||
<tr>
|
||
<td><a class="xref" href="dbset_encrypt.html" title="DB->set_encrypt()">DB->set_encrypt()</a>, <a class="xref" href="dbget_encrypt_flags.html" title="DB->get_encrypt_flags()">DB->get_encrypt_flags()</a></td>
|
||
<td>Set/get the database cryptographic key</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbset_errcall.html" title="DB->set_errcall()">DB->set_errcall()</a>
|
||
</td>
|
||
<td>Set error message callback</td>
|
||
</tr>
|
||
<tr>
|
||
<td><a class="xref" href="dbset_errfile.html" title="DB->set_errfile()">DB->set_errfile()</a>, <a class="xref" href="dbget_errfile.html" title="DB->get_errfile()">DB->get_errfile()</a></td>
|
||
<td>Set/get error message FILE</td>
|
||
</tr>
|
||
<tr>
|
||
<td><a class="xref" href="dbset_errpfx.html" title="DB->set_errpfx()">DB->set_errpfx()</a>, <a class="xref" href="dbget_errpfx.html" title="DB->get_errpfx()">DB->get_errpfx()</a></td>
|
||
<td>Set/get error message prefix</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbset_feedback.html" title="DB->set_feedback()">DB->set_feedback()</a>
|
||
</td>
|
||
<td>Set feedback callback</td>
|
||
</tr>
|
||
<tr>
|
||
<td><a class="xref" href="dbset_flags.html" title="DB->set_flags()">DB->set_flags()</a>, <a class="xref" href="dbget_flags.html" title="DB->get_flags()">DB->get_flags()</a></td>
|
||
<td>Set/get general database configuration</td>
|
||
</tr>
|
||
<tr>
|
||
<td><a class="xref" href="dbset_lk_exclusive.html" title="DB->set_lk_exclusive()">DB->set_lk_exclusive()</a>, <a class="xref" href="dbget_lk_exclusive.html" title="DB->get_lk_exclusive()">DB->get_lk_exclusive()</a></td>
|
||
<td>Set/get exclusive database locking</td>
|
||
</tr>
|
||
<tr>
|
||
<td><a class="xref" href="dbset_lorder.html" title="DB->set_lorder()">DB->set_lorder()</a>, <a class="xref" href="dbget_lorder.html" title="DB->get_lorder()">DB->get_lorder()</a></td>
|
||
<td>Set/get the database byte order</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbset_msgcall.html" title="DB->set_msgcall()">DB->set_msgcall()</a>
|
||
</td>
|
||
<td>Set informational message callback</td>
|
||
</tr>
|
||
<tr>
|
||
<td><a class="xref" href="dbset_msgfile.html" title="DB->set_msgfile()">DB->set_msgfile()</a>, <a class="xref" href="dbget_msgfile.html" title="DB->get_msgfile()">DB->get_msgfile()</a></td>
|
||
<td>Set/get informational message FILE</td>
|
||
</tr>
|
||
<tr>
|
||
<td><a class="xref" href="dbset_pagesize.html" title="DB->set_pagesize()">DB->set_pagesize()</a>, <a class="xref" href="dbget_pagesize.html" title="DB->get_pagesize()">DB->get_pagesize()</a></td>
|
||
<td>Set/get the underlying database page size</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbset_partition.html" title="DB->set_partition()">DB->set_partition()</a>
|
||
</td>
|
||
<td>Set database partitioning</td>
|
||
</tr>
|
||
<tr>
|
||
<td><a class="xref" href="dbset_partition_dirs.html" title="DB->set_partition_dirs()">DB->set_partition_dirs()</a>, <a class="xref" href="dbget_partition_dirs.html" title="DB->get_partition_dirs()">DB->get_partition_dirs()</a></td>
|
||
<td>Set/get the directories used for database partitions</td>
|
||
</tr>
|
||
<tr>
|
||
<td colspan="2">
|
||
<span class="bold">
|
||
<strong>Btree/Recno Configuration</strong>
|
||
</span>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbset_append_recno.html" title="DB->set_append_recno()">DB->set_append_recno()</a>
|
||
</td>
|
||
<td>Set record append callback</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbset_bt_compare.html" title="DB->set_bt_compare()">DB->set_bt_compare()</a>
|
||
</td>
|
||
<td>Set a Btree comparison function</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbset_bt_compress.html" title="DB->set_bt_compress()">DB->set_bt_compress()</a>
|
||
</td>
|
||
<td>Set Btree compression functions</td>
|
||
</tr>
|
||
<tr>
|
||
<td><a class="xref" href="dbset_bt_minkey.html" title="DB->set_bt_minkey()">DB->set_bt_minkey()</a>, <a class="xref" href="dbget_bt_minkey.html" title="DB->get_bt_minkey()">DB->get_bt_minkey()</a></td>
|
||
<td>Set/get the minimum number of keys per Btree page</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbset_bt_prefix.html" title="DB->set_bt_prefix()">DB->set_bt_prefix()</a>
|
||
</td>
|
||
<td>Set a Btree prefix comparison function</td>
|
||
</tr>
|
||
<tr>
|
||
<td><a class="xref" href="dbset_re_delim.html" title="DB->set_re_delim()">DB->set_re_delim()</a>, <a class="xref" href="dbget_re_delim.html" title="DB->get_re_delim()">DB->get_re_delim()</a></td>
|
||
<td>Set/get the variable-length record delimiter</td>
|
||
</tr>
|
||
<tr>
|
||
<td><a class="xref" href="dbset_re_len.html" title="DB->set_re_len()">DB->set_re_len()</a>, <a class="xref" href="dbget_re_len.html" title="DB->get_re_len()">DB->get_re_len()</a></td>
|
||
<td>Set/get the fixed-length record length</td>
|
||
</tr>
|
||
<tr>
|
||
<td><a class="xref" href="dbset_re_pad.html" title="DB->set_re_pad()">DB->set_re_pad()</a>, <a class="xref" href="dbget_re_pad.html" title="DB->get_re_pad()">DB->get_re_pad()</a></td>
|
||
<td>Set/get the fixed-length record pad byte</td>
|
||
</tr>
|
||
<tr>
|
||
<td><a class="xref" href="dbset_re_source.html" title="DB->set_re_source()">DB->set_re_source()</a>, <a class="xref" href="dbget_re_source.html" title="DB->get_re_source()">DB->get_re_source()</a></td>
|
||
<td>Set/get the backing Recno text file</td>
|
||
</tr>
|
||
<tr>
|
||
<td colspan="2">
|
||
<span class="bold">
|
||
<strong>Hash Configuration</strong>
|
||
</span>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbset_h_compare.html" title="DB->set_h_compare()">DB->set_h_compare()</a>
|
||
</td>
|
||
<td>Set a Hash comparison function</td>
|
||
</tr>
|
||
<tr>
|
||
<td><a class="xref" href="dbset_h_ffactor.html" title="DB->set_h_ffactor()">DB->set_h_ffactor()</a>, <a class="xref" href="dbget_h_ffactor.html" title="DB->get_h_ffactor()">DB->get_h_ffactor()</a></td>
|
||
<td>Set/get the Hash table density</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="dbset_h_hash.html" title="DB->set_h_hash()">DB->set_h_hash()</a>
|
||
</td>
|
||
<td>Set a hashing function</td>
|
||
</tr>
|
||
<tr>
|
||
<td><a class="xref" href="dbset_h_nelem.html" title="DB->set_h_nelem()">DB->set_h_nelem()</a>, <a class="xref" href="dbget_h_nelem.html" title="DB->get_h_nelem()">DB->get_h_nelem()</a></td>
|
||
<td>Set/get the Hash table size</td>
|
||
</tr>
|
||
<tr>
|
||
<td colspan="2">
|
||
<span class="bold">
|
||
<strong>Queue Configuration</strong>
|
||
</span>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td><a class="xref" href="dbset_q_extentsize.html" title="DB->set_q_extentsize()">DB->set_q_extentsize()</a>, <a class="xref" href="dbget_q_extentsize.html" title="DB->get_q_extentsize()">DB->get_q_extentsize()</a></td>
|
||
<td>Set/get Queue database extent size</td>
|
||
</tr>
|
||
<tr>
|
||
<td colspan="2">
|
||
<span class="bold">
|
||
<strong>Heap</strong>
|
||
</span>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td><a class="xref" href="dbset_heapsize.html" title="DB->set_heapsize()">DB->set_heapsize()</a>, <a class="xref" href="dbget_heapsize.html" title="DB->get_heapsize()">DB->get_heapsize()</a></td>
|
||
<td>Set/get the database heap size</td>
|
||
</tr>
|
||
<tr>
|
||
<td><a class="xref" href="dbset_heap_regionsize.html" title="DB->set_heap_regionsize()">DB->set_heap_regionsize()</a>, <a class="xref" href="dbget_heap_regionsize.html" title="DB->get_heap_regionsize()">DB->get_heap_regionsize()</a></td>
|
||
<td>Set/get the database region size</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="db_heap_rid.html" title="DB_HEAP_RID">DB_HEAP_RID</a>
|
||
</td>
|
||
<td></td>
|
||
</tr>
|
||
<tr>
|
||
<td colspan="2">
|
||
<span class="bold">
|
||
<strong>Database Utilities</strong>
|
||
</span>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<a class="xref" href="db_copy.html" title="db_copy">db_copy</a>
|
||
</td>
|
||
<td>Copy a named database to a target directory</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="navfooter">
|
||
<hr />
|
||
<table width="100%" summary="Navigation footer">
|
||
<tr>
|
||
<td width="40%" align="left"><a accesskey="p" href="introduction.html">Prev</a> </td>
|
||
<td width="20%" align="center"> </td>
|
||
<td width="40%" align="right"> <a accesskey="n" href="dbassociate.html">Next</a></td>
|
||
</tr>
|
||
<tr>
|
||
<td width="40%" align="left" valign="top">Chapter 1. Introduction to Berkeley DB APIs </td>
|
||
<td width="20%" align="center">
|
||
<a accesskey="h" href="index.html">Home</a>
|
||
</td>
|
||
<td width="40%" align="right" valign="top"> DB->associate()</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
</body>
|
||
</html>
|