dbm.html
来自「perl教程」· HTML 代码 · 共 390 行 · 第 1/4 页
HTML
390 行
<?xml version="1.0" ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<!-- saved from url=(0017)http://localhost/ -->
<script language="JavaScript" src="../../displayToc.js"></script>
<script language="JavaScript" src="../../tocParas.js"></script>
<script language="JavaScript" src="../../tocTab.js"></script>
<link rel="stylesheet" type="text/css" href="../../scineplex.css">
<title>DBD::DBM - a DBI driver for DBM & MLDBM files</title>
<link rel="stylesheet" href="../../Active.css" type="text/css" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rev="made" href="mailto:" />
</head>
<body>
<script>writelinks('__top__',2);</script>
<h1><a>DBD::DBM - a DBI driver for DBM & MLDBM files</a></h1>
<p><a name="__index__"></a></p>
<!-- INDEX BEGIN -->
<ul>
<li><a href="#name">NAME</a></li>
<li><a href="#synopsis">SYNOPSIS</a></li>
<li><a href="#description">DESCRIPTION</a></li>
<li><a href="#quick_start">QUICK START</a></li>
<li><a href="#usage">USAGE</a></li>
<ul>
<li><a href="#specifiying_files_and_directories">Specifiying Files and Directories</a></li>
<li><a href="#table_locking_and_flock__">Table locking and <a href="../../lib/Pod/perlfunc.html#item_flock"><code>flock()</code></a></a></li>
<li><a href="#specifying_the_dbm_type">Specifying the DBM type</a></li>
<li><a href="#adding_multicolumn_support_with_mldbm">Adding multi-column support with MLDBM</a></li>
<li><a href="#support_for_berkeley_db">Support for Berkeley DB</a></li>
<li><a href="#supported_sql_syntax">Supported SQL syntax</a></li>
<li><a href="#optimizing_use_of_key_fields">Optimizing use of key fields</a></li>
<li><a href="#specifying_column_names">Specifying Column Names</a></li>
<li><a href="#statement_handle___sth__attributes_and_methods">Statement handle ($sth) attributes and methods</a></li>
<li><a href="#the__dbh_dbm_versions___method">The $dbh-><code>dbm_versions()</code> method</a></li>
<li><a href="#storing_objects">Storing Objects</a></li>
</ul>
<li><a href="#gotchas_and_warnings">GOTCHAS AND WARNINGS</a></li>
<li><a href="#getting_help__making_suggestions__and_reporting_bugs">GETTING HELP, MAKING SUGGESTIONS, AND REPORTING BUGS</a></li>
<li><a href="#acknowledgements">ACKNOWLEDGEMENTS</a></li>
<li><a href="#author_and_copyright">AUTHOR AND COPYRIGHT</a></li>
<li><a href="#see_also">SEE ALSO</a></li>
</ul>
<!-- INDEX END -->
<hr />
<p>
</p>
<hr />
<h1><a name="name">NAME</a></h1>
<p>DBD::DBM - a DBI driver for DBM & MLDBM files</p>
<p>
</p>
<hr />
<h1><a name="synopsis">SYNOPSIS</a></h1>
<pre>
<span class="keyword">use</span> <span class="variable">DBI</span><span class="operator">;</span>
<span class="variable">$dbh</span> <span class="operator">=</span> <span class="variable">DBI</span><span class="operator">-></span><span class="keyword">connect</span><span class="operator">(</span><span class="string">'dbi:DBM:'</span><span class="operator">);</span> <span class="comment"># defaults to SDBM_File</span>
<span class="variable">$dbh</span> <span class="operator">=</span> <span class="variable">DBI</span><span class="operator">-></span><span class="keyword">connect</span><span class="operator">(</span><span class="string">'DBI:DBM(RaiseError=1):'</span><span class="operator">);</span> <span class="comment"># defaults to SDBM_File</span>
<span class="variable">$dbh</span> <span class="operator">=</span> <span class="variable">DBI</span><span class="operator">-></span><span class="keyword">connect</span><span class="operator">(</span><span class="string">'dbi:DBM:type=GDBM_File'</span><span class="operator">);</span> <span class="comment"># defaults to GDBM_File</span>
<span class="variable">$dbh</span> <span class="operator">=</span> <span class="variable">DBI</span><span class="operator">-></span><span class="keyword">connect</span><span class="operator">(</span><span class="string">'dbi:DBM:mldbm=Storable'</span><span class="operator">);</span> <span class="comment"># MLDBM with SDBM_File</span>
<span class="comment"># and Storable</span>
</pre>
<p>or</p>
<pre>
<span class="variable">$dbh</span> <span class="operator">=</span> <span class="variable">DBI</span><span class="operator">-></span><span class="keyword">connect</span><span class="operator">(</span><span class="string">'dbi:DBM:'</span><span class="operator">,</span> <span class="keyword">undef</span><span class="operator">,</span> <span class="keyword">undef</span><span class="operator">);</span>
<span class="variable">$dbh</span> <span class="operator">=</span> <span class="variable">DBI</span><span class="operator">-></span><span class="keyword">connect</span><span class="operator">(</span><span class="string">'dbi:DBM:'</span><span class="operator">,</span> <span class="keyword">undef</span><span class="operator">,</span> <span class="keyword">undef</span><span class="operator">,</span> <span class="operator">{</span> <span class="string">dbm_type</span> <span class="operator">=></span> <span class="string">'ODBM_File'</span> <span class="operator">}</span><span class="operator">);</span>
</pre>
<p>and other variations on <a href="../../lib/Pod/perlfunc.html#item_connect"><code>connect()</code></a> as shown in the DBI docs and with
the dbm_ attributes shown below</p>
<p>... and then use standard DBI prepare, execute, fetch, placeholders, etc.,
see <a href="#quick_start">QUICK START</a> for an example</p>
<p>
</p>
<hr />
<h1><a name="description">DESCRIPTION</a></h1>
<p>DBD::DBM is a database management sytem that can work right out of the box. If you have a standard installation of Perl and a standard installation of DBI, you can begin creating, accessing, and modifying database tables without any further installation. You can also add some other modules to it for more robust capabilities if you wish.</p>
<p>The module uses a DBM file storage layer. DBM file storage is common on many platforms and files can be created with it in many languges. That means that, in addition to creating files with DBI/SQL, you can also use DBI/SQL to access and modify files created by other DBM modules and programs. You can also use those programs to access files created with DBD::DBM.</p>
<p>DBM files are stored in binary format optimized for quick retrieval when using a key field. That optimization can be used advantageously to make DBD::DBM SQL operations that use key fields very fast. There are several different "flavors" of DBM - different storage formats supported by different sorts of perl modules such as SDBM_File and MLDBM. This module supports all of the flavors that perl supports and, when used with MLDBM, supports tables with any number of columns and insertion of Perl objects into tables.</p>
<p>DBD::DBM has been tested with the following DBM types: SDBM_File, NDBM_File, ODBM_File, GDBM_File, DB_File, BerekeleyDB. Each type was tested both with and without MLDBM.</p>
<p>
</p>
<hr />
<h1><a name="quick_start">QUICK START</a></h1>
<p>DBD::DBM operates like all other DBD drivers - it's basic syntax and operation is specified by DBI. If you're not familiar with DBI, you should start by reading <a href="../../lib/DBI.html">the DBI manpage</a> and the documents it points to and then come back and read this file. If you are familiar with DBI, you already know most of what you need to know to operate this module. Just jump in and create a test script something like the one shown below.</p>
<p>You should be aware that there are several options for the SQL engine underlying DBD::DBM, see <a href="#supported_sql_syntax">Supported SQL syntax</a>. There are also many options for DBM support, see especially the section on <a href="#adding_multicolumn_support_with_mldbm">Adding multi-column support with MLDBM</a>.</p>
<p>But here's a sample to get you started.</p>
<pre>
<span class="keyword">use</span> <span class="variable">DBI</span><span class="operator">;</span>
<span class="keyword">my</span> <span class="variable">$dbh</span> <span class="operator">=</span> <span class="variable">DBI</span><span class="operator">-></span><span class="keyword">connect</span><span class="operator">(</span><span class="string">'dbi:DBM:'</span><span class="operator">);</span>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?