1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2<!--NewPage--> 3<HTML> 4<HEAD> 5<!-- Generated by javadoc (build 1.6.0_03) on Mon Apr 12 16:25:48 EDT 2010 --> 6<TITLE> 7SecondaryDatabase (Oracle - Berkeley DB Java API) 8</TITLE> 9 10<META NAME="date" CONTENT="2010-04-12"> 11 12<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../style.css" TITLE="Style"> 13 14<SCRIPT type="text/javascript"> 15function windowTitle() 16{ 17 if (location.href.indexOf('is-external=true') == -1) { 18 parent.document.title="SecondaryDatabase (Oracle - Berkeley DB Java API)"; 19 } 20} 21</SCRIPT> 22<NOSCRIPT> 23</NOSCRIPT> 24 25</HEAD> 26 27<BODY BGCOLOR="white" onload="windowTitle();"> 28<HR> 29 30 31<!-- ========= START OF TOP NAVBAR ======= --> 32<A NAME="navbar_top"><!-- --></A> 33<A HREF="#skip-navbar_top" title="Skip navigation links"></A> 34<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""> 35<TR> 36<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> 37<A NAME="navbar_top_firstrow"><!-- --></A> 38<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> 39 <TR ALIGN="center" VALIGN="top"> 40 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD> 41 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> 42 <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> 43 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/SecondaryDatabase.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD> 44 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> 45 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> 46 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> 47 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> 48 </TR> 49</TABLE> 50</TD> 51<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> 52<b>Berkeley DB</b><br><font size="-1"> version 4.8.30</font></EM> 53</TD> 54</TR> 55 56<TR> 57<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> 58 <A HREF="../../../com/sleepycat/db/SecondaryCursor.html" title="class in com.sleepycat.db"><B>PREV CLASS</B></A> 59 <A HREF="../../../com/sleepycat/db/SecondaryKeyCreator.html" title="interface in com.sleepycat.db"><B>NEXT CLASS</B></A></FONT></TD> 60<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> 61 <A HREF="../../../index.html?com/sleepycat/db/SecondaryDatabase.html" target="_top"><B>FRAMES</B></A> 62 <A HREF="SecondaryDatabase.html" target="_top"><B>NO FRAMES</B></A> 63 <SCRIPT type="text/javascript"> 64 <!-- 65 if(window==top) { 66 document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>'); 67 } 68 //--> 69</SCRIPT> 70<NOSCRIPT> 71 <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A> 72</NOSCRIPT> 73 74 75</FONT></TD> 76</TR> 77<TR> 78<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> 79 SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD> 80<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> 81DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD> 82</TR> 83</TABLE> 84<A NAME="skip-navbar_top"></A> 85<!-- ========= END OF TOP NAVBAR ========= --> 86 87<HR> 88<!-- ======== START OF CLASS DATA ======== --> 89<H2> 90<FONT SIZE="-1"> 91com.sleepycat.db</FONT> 92<BR> 93Class SecondaryDatabase</H2> 94<PRE> 95<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A> 96 <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/sleepycat/db/Database.html" title="class in com.sleepycat.db">com.sleepycat.db.Database</A> 97 <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.sleepycat.db.SecondaryDatabase</B> 98</PRE> 99<HR> 100<DL> 101<DT><PRE>public class <B>SecondaryDatabase</B><DT>extends <A HREF="../../../com/sleepycat/db/Database.html" title="class in com.sleepycat.db">Database</A></DL> 102</PRE> 103 104<P> 105A secondary database handle. 106<p> 107Secondary databases are opened with <A HREF="../../../com/sleepycat/db/Environment.html#openSecondaryDatabase(com.sleepycat.db.Transaction, java.lang.String, java.lang.String, com.sleepycat.db.Database, com.sleepycat.db.SecondaryConfig)"><CODE>Environment.openSecondaryDatabase</CODE></A> and are 108always associated with a single primary database. The distinguishing 109characteristics of a secondary database are: 110<ul> 111<li>Records are automatically added to a secondary database when records are 112added, modified and deleted in the primary database. Direct calls to 113<code>put()</code> methods on a secondary database are prohibited.</li> 114<li>The <A HREF="../../../com/sleepycat/db/Database.html#delete(com.sleepycat.db.Transaction, com.sleepycat.db.DatabaseEntry)"><CODE>delete</CODE></A> method of a secondary database will delete 115the primary record and as well as all its associated secondary records.</li> 116<li>Calls to all <code>get()</code> methods will return the data from the 117associated primary database.</li> 118<li>Additional <code>get()</code> method signatures are provided to return 119the primary key in an additional <code>pKey</code> parameter.</li> 120<li>Calls to <A HREF="../../../com/sleepycat/db/SecondaryDatabase.html#openCursor(com.sleepycat.db.Transaction, com.sleepycat.db.CursorConfig)"><CODE>openCursor</CODE></A> will return a <A HREF="../../../com/sleepycat/db/SecondaryCursor.html" title="class in com.sleepycat.db"><CODE>SecondaryCursor</CODE></A>, which itself has <code>get()</code> methods that return 121the data of the primary database and additional <code>get()</code> method 122signatures for returning the primary key.</li> 123<li>The <A HREF="../../../com/sleepycat/db/SecondaryDatabase.html#openSecondaryCursor(com.sleepycat.db.Transaction, com.sleepycat.db.CursorConfig)"><CODE>openSecondaryCursor</CODE></A> method is provided 124to return a <A HREF="../../../com/sleepycat/db/SecondaryCursor.html" title="class in com.sleepycat.db"><CODE>SecondaryCursor</CODE></A> that doesn't require casting.</li> 125</ul> 126<p> 127Before opening or creating a secondary database you must implement the <A HREF="../../../com/sleepycat/db/SecondaryKeyCreator.html" title="interface in com.sleepycat.db"><CODE>SecondaryKeyCreator</CODE></A> 128interface. 129<p> 130For example, to create a secondary database that supports duplicates: 131<pre> 132 Database primaryDb; // The primary database must already be open. 133 SecondaryKeyCreator keyCreator; // Your key creator implementation. 134 SecondaryConfig secConfig = new SecondaryConfig(); 135 secConfig.setAllowCreate(true); 136 secConfig.setSortedDuplicates(true); 137 secConfig.setKeyCreator(keyCreator); 138 SecondaryDatabase newDb = env.openSecondaryDatabase(transaction, 139 "myDatabaseName", 140 primaryDb, 141 secConfig) 142</pre> 143<p> 144If a primary database is to be associated with one or more secondary 145databases, it may not be configured for duplicates. 146<p> 147Note that the associations between primary and secondary databases are not 148stored persistently. Whenever a primary database is opened for write access by 149the application, the appropriate associated secondary databases should also be 150opened by the application. This is necessary to ensure data integrity when 151changes are made to the primary database. 152<P> 153 154<P> 155<HR> 156 157<P> 158 159<!-- ======== CONSTRUCTOR SUMMARY ======== --> 160 161<A NAME="constructor_summary"><!-- --></A> 162<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> 163<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> 164<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> 165<B>Constructor Summary</B></FONT></TH> 166</TR> 167<TR BGCOLOR="white" CLASS="TableRowColor"> 168<TD><CODE><B><A HREF="../../../com/sleepycat/db/SecondaryDatabase.html#SecondaryDatabase(java.lang.String, java.lang.String, com.sleepycat.db.Database, com.sleepycat.db.SecondaryConfig)">SecondaryDatabase</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> fileName, 169 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> databaseName, 170 <A HREF="../../../com/sleepycat/db/Database.html" title="class in com.sleepycat.db">Database</A> primaryDatabase, 171 <A HREF="../../../com/sleepycat/db/SecondaryConfig.html" title="class in com.sleepycat.db">SecondaryConfig</A> config)</CODE> 172 173<BR> 174 Open a database.</TD> 175</TR> 176</TABLE> 177 178<!-- ========== METHOD SUMMARY =========== --> 179 180<A NAME="method_summary"><!-- --></A> 181<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> 182<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> 183<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> 184<B>Method Summary</B></FONT></TH> 185</TR> 186<TR BGCOLOR="white" CLASS="TableRowColor"> 187<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> 188<CODE> <A HREF="../../../com/sleepycat/db/OperationStatus.html" title="class in com.sleepycat.db">OperationStatus</A></CODE></FONT></TD> 189<TD><CODE><B><A HREF="../../../com/sleepycat/db/SecondaryDatabase.html#get(com.sleepycat.db.Transaction, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.LockMode)">get</A></B>(<A HREF="../../../com/sleepycat/db/Transaction.html" title="class in com.sleepycat.db">Transaction</A> txn, 190 <A HREF="../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A> key, 191 <A HREF="../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A> pKey, 192 <A HREF="../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A> data, 193 <A HREF="../../../com/sleepycat/db/LockMode.html" title="class in com.sleepycat.db">LockMode</A> lockMode)</CODE> 194 195<BR> 196 Retrieves the key/data pair with the given key.</TD> 197</TR> 198<TR BGCOLOR="white" CLASS="TableRowColor"> 199<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> 200<CODE> <A HREF="../../../com/sleepycat/db/DatabaseConfig.html" title="class in com.sleepycat.db">DatabaseConfig</A></CODE></FONT></TD> 201<TD><CODE><B><A HREF="../../../com/sleepycat/db/SecondaryDatabase.html#getConfig()">getConfig</A></B>()</CODE> 202 203<BR> 204 Return this Database object's configuration.</TD> 205</TR> 206<TR BGCOLOR="white" CLASS="TableRowColor"> 207<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> 208<CODE> <A HREF="../../../com/sleepycat/db/Database.html" title="class in com.sleepycat.db">Database</A></CODE></FONT></TD> 209<TD><CODE><B><A HREF="../../../com/sleepycat/db/SecondaryDatabase.html#getPrimaryDatabase()">getPrimaryDatabase</A></B>()</CODE> 210 211<BR> 212 Returns the primary database associated with this secondary database.</TD> 213</TR> 214<TR BGCOLOR="white" CLASS="TableRowColor"> 215<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> 216<CODE> <A HREF="../../../com/sleepycat/db/OperationStatus.html" title="class in com.sleepycat.db">OperationStatus</A></CODE></FONT></TD> 217<TD><CODE><B><A HREF="../../../com/sleepycat/db/SecondaryDatabase.html#getSearchBoth(com.sleepycat.db.Transaction, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.LockMode)">getSearchBoth</A></B>(<A HREF="../../../com/sleepycat/db/Transaction.html" title="class in com.sleepycat.db">Transaction</A> txn, 218 <A HREF="../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A> key, 219 <A HREF="../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A> pKey, 220 <A HREF="../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A> data, 221 <A HREF="../../../com/sleepycat/db/LockMode.html" title="class in com.sleepycat.db">LockMode</A> lockMode)</CODE> 222 223<BR> 224 Retrieves the key/data pair with the specified secondary and primary key, that 225is, both the primary and secondary key items must match.</TD> 226</TR> 227<TR BGCOLOR="white" CLASS="TableRowColor"> 228<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> 229<CODE> <A HREF="../../../com/sleepycat/db/OperationStatus.html" title="class in com.sleepycat.db">OperationStatus</A></CODE></FONT></TD> 230<TD><CODE><B><A HREF="../../../com/sleepycat/db/SecondaryDatabase.html#getSearchRecordNumber(com.sleepycat.db.Transaction, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.LockMode)">getSearchRecordNumber</A></B>(<A HREF="../../../com/sleepycat/db/Transaction.html" title="class in com.sleepycat.db">Transaction</A> txn, 231 <A HREF="../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A> key, 232 <A HREF="../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A> pKey, 233 <A HREF="../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A> data, 234 <A HREF="../../../com/sleepycat/db/LockMode.html" title="class in com.sleepycat.db">LockMode</A> lockMode)</CODE> 235 236<BR> 237 Retrieves the key/data pair associated with the specific numbered record of the database.</TD> 238</TR> 239<TR BGCOLOR="white" CLASS="TableRowColor"> 240<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> 241<CODE> <A HREF="../../../com/sleepycat/db/SecondaryConfig.html" title="class in com.sleepycat.db">SecondaryConfig</A></CODE></FONT></TD> 242<TD><CODE><B><A HREF="../../../com/sleepycat/db/SecondaryDatabase.html#getSecondaryConfig()">getSecondaryConfig</A></B>()</CODE> 243 244<BR> 245 Returns a copy of the secondary configuration of this database.</TD> 246</TR> 247<TR BGCOLOR="white" CLASS="TableRowColor"> 248<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> 249<CODE> <A HREF="../../../com/sleepycat/db/Cursor.html" title="class in com.sleepycat.db">Cursor</A></CODE></FONT></TD> 250<TD><CODE><B><A HREF="../../../com/sleepycat/db/SecondaryDatabase.html#openCursor(com.sleepycat.db.Transaction, com.sleepycat.db.CursorConfig)">openCursor</A></B>(<A HREF="../../../com/sleepycat/db/Transaction.html" title="class in com.sleepycat.db">Transaction</A> txn, 251 <A HREF="../../../com/sleepycat/db/CursorConfig.html" title="class in com.sleepycat.db">CursorConfig</A> config)</CODE> 252 253<BR> 254 Return a cursor into the database.</TD> 255</TR> 256<TR BGCOLOR="white" CLASS="TableRowColor"> 257<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> 258<CODE> <A HREF="../../../com/sleepycat/db/SecondaryCursor.html" title="class in com.sleepycat.db">SecondaryCursor</A></CODE></FONT></TD> 259<TD><CODE><B><A HREF="../../../com/sleepycat/db/SecondaryDatabase.html#openSecondaryCursor(com.sleepycat.db.Transaction, com.sleepycat.db.CursorConfig)">openSecondaryCursor</A></B>(<A HREF="../../../com/sleepycat/db/Transaction.html" title="class in com.sleepycat.db">Transaction</A> txn, 260 <A HREF="../../../com/sleepycat/db/CursorConfig.html" title="class in com.sleepycat.db">CursorConfig</A> config)</CODE> 261 262<BR> 263 Obtain a cursor on a database, returning a <code>SecondaryCursor</code>.</TD> 264</TR> 265</TABLE> 266 <A NAME="methods_inherited_from_class_com.sleepycat.db.Database"><!-- --></A> 267<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> 268<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor"> 269<TH ALIGN="left"><B>Methods inherited from class com.sleepycat.db.<A HREF="../../../com/sleepycat/db/Database.html" title="class in com.sleepycat.db">Database</A></B></TH> 270</TR> 271<TR BGCOLOR="white" CLASS="TableRowColor"> 272<TD><CODE><A HREF="../../../com/sleepycat/db/Database.html#append(com.sleepycat.db.Transaction, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry)">append</A>, <A HREF="../../../com/sleepycat/db/Database.html#close()">close</A>, <A HREF="../../../com/sleepycat/db/Database.html#close(boolean)">close</A>, <A HREF="../../../com/sleepycat/db/Database.html#compact(com.sleepycat.db.Transaction, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.CompactConfig)">compact</A>, <A HREF="../../../com/sleepycat/db/Database.html#consume(com.sleepycat.db.Transaction, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry, boolean)">consume</A>, <A HREF="../../../com/sleepycat/db/Database.html#delete(com.sleepycat.db.Transaction, com.sleepycat.db.DatabaseEntry)">delete</A>, <A HREF="../../../com/sleepycat/db/Database.html#deleteMultiple(com.sleepycat.db.Transaction, com.sleepycat.db.MultipleEntry)">deleteMultiple</A>, <A HREF="../../../com/sleepycat/db/Database.html#exists(com.sleepycat.db.Transaction, com.sleepycat.db.DatabaseEntry)">exists</A>, <A HREF="../../../com/sleepycat/db/Database.html#get(com.sleepycat.db.Transaction, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.LockMode)">get</A>, <A HREF="../../../com/sleepycat/db/Database.html#getCacheFile()">getCacheFile</A>, <A HREF="../../../com/sleepycat/db/Database.html#getDatabaseFile()">getDatabaseFile</A>, <A HREF="../../../com/sleepycat/db/Database.html#getDatabaseName()">getDatabaseName</A>, <A HREF="../../../com/sleepycat/db/Database.html#getEnvironment()">getEnvironment</A>, <A HREF="../../../com/sleepycat/db/Database.html#getKeyRange(com.sleepycat.db.Transaction, com.sleepycat.db.DatabaseEntry)">getKeyRange</A>, <A HREF="../../../com/sleepycat/db/Database.html#getSearchBoth(com.sleepycat.db.Transaction, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.LockMode)">getSearchBoth</A>, <A HREF="../../../com/sleepycat/db/Database.html#getSearchRecordNumber(com.sleepycat.db.Transaction, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.LockMode)">getSearchRecordNumber</A>, <A HREF="../../../com/sleepycat/db/Database.html#getStats(com.sleepycat.db.Transaction, com.sleepycat.db.StatsConfig)">getStats</A>, <A HREF="../../../com/sleepycat/db/Database.html#join(com.sleepycat.db.Cursor[], com.sleepycat.db.JoinConfig)">join</A>, <A HREF="../../../com/sleepycat/db/Database.html#openSequence(com.sleepycat.db.Transaction, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.SequenceConfig)">openSequence</A>, <A HREF="../../../com/sleepycat/db/Database.html#put(com.sleepycat.db.Transaction, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry)">put</A>, <A HREF="../../../com/sleepycat/db/Database.html#putMultiple(com.sleepycat.db.Transaction, com.sleepycat.db.MultipleEntry, com.sleepycat.db.MultipleEntry, boolean)">putMultiple</A>, <A HREF="../../../com/sleepycat/db/Database.html#putMultipleKey(com.sleepycat.db.Transaction, com.sleepycat.db.MultipleEntry, boolean)">putMultipleKey</A>, <A HREF="../../../com/sleepycat/db/Database.html#putNoDupData(com.sleepycat.db.Transaction, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry)">putNoDupData</A>, <A HREF="../../../com/sleepycat/db/Database.html#putNoOverwrite(com.sleepycat.db.Transaction, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry)">putNoOverwrite</A>, <A HREF="../../../com/sleepycat/db/Database.html#remove(java.lang.String, java.lang.String, com.sleepycat.db.DatabaseConfig)">remove</A>, <A HREF="../../../com/sleepycat/db/Database.html#removeSequence(com.sleepycat.db.Transaction, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.SequenceConfig)">removeSequence</A>, <A HREF="../../../com/sleepycat/db/Database.html#rename(java.lang.String, java.lang.String, java.lang.String, com.sleepycat.db.DatabaseConfig)">rename</A>, <A HREF="../../../com/sleepycat/db/Database.html#setConfig(com.sleepycat.db.DatabaseConfig)">setConfig</A>, <A HREF="../../../com/sleepycat/db/Database.html#sortMultipleKeyAndData(com.sleepycat.db.MultipleDataEntry, com.sleepycat.db.MultipleDataEntry)">sortMultipleKeyAndData</A>, <A HREF="../../../com/sleepycat/db/Database.html#sortMultipleKeyData(com.sleepycat.db.MultipleKeyDataEntry)">sortMultipleKeyData</A>, <A HREF="../../../com/sleepycat/db/Database.html#sortMultipleKeyOrData(com.sleepycat.db.MultipleDataEntry)">sortMultipleKeyOrData</A>, <A HREF="../../../com/sleepycat/db/Database.html#sync()">sync</A>, <A HREF="../../../com/sleepycat/db/Database.html#truncate(com.sleepycat.db.Transaction, boolean)">truncate</A>, <A HREF="../../../com/sleepycat/db/Database.html#upgrade(java.lang.String, com.sleepycat.db.DatabaseConfig)">upgrade</A>, <A HREF="../../../com/sleepycat/db/Database.html#verify(java.lang.String, java.lang.String, java.io.PrintStream, com.sleepycat.db.VerifyConfig, com.sleepycat.db.DatabaseConfig)">verify</A></CODE></TD> 273</TR> 274</TABLE> 275 <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A> 276<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> 277<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor"> 278<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH> 279</TR> 280<TR BGCOLOR="white" CLASS="TableRowColor"> 281<TD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD> 282</TR> 283</TABLE> 284 285<P> 286 287<!-- ========= CONSTRUCTOR DETAIL ======== --> 288 289<A NAME="constructor_detail"><!-- --></A> 290<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> 291<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> 292<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2"> 293<B>Constructor Detail</B></FONT></TH> 294</TR> 295</TABLE> 296 297<A NAME="SecondaryDatabase(java.lang.String, java.lang.String, com.sleepycat.db.Database, com.sleepycat.db.SecondaryConfig)"><!-- --></A><H3> 298SecondaryDatabase</H3> 299<PRE> 300public <B>SecondaryDatabase</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> fileName, 301 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> databaseName, 302 <A HREF="../../../com/sleepycat/db/Database.html" title="class in com.sleepycat.db">Database</A> primaryDatabase, 303 <A HREF="../../../com/sleepycat/db/SecondaryConfig.html" title="class in com.sleepycat.db">SecondaryConfig</A> config) 304 throws <A HREF="../../../com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</A>, 305 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io">FileNotFoundException</A></PRE> 306<DL> 307<DD>Open a database. 308<p> 309The database is represented by the file and database parameters. 310<p> 311The currently supported database file formats (or <em>access 312methods</em>) are Btree, Hash, Queue, and Recno. The Btree format is a 313representation of a sorted, balanced tree structure. The Hash format 314is an extensible, dynamic hashing scheme. The Queue format supports 315fast access to fixed-length records accessed sequentially or by logical 316record number. The Recno format supports fixed- or variable-length 317records, accessed sequentially or by logical record number, and 318optionally backed by a flat text file. 319<p> 320Storage and retrieval are based on key/data pairs; see <A HREF="../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db"><CODE>DatabaseEntry</CODE></A> 321for more information. 322<p> 323Opening a database is a relatively expensive operation, and maintaining 324a set of open databases will normally be preferable to repeatedly 325opening and closing the database for each new query. 326<p> 327In-memory databases never intended to be preserved on disk may be 328created by setting both the fileName and databaseName parameters to 329null. Note that in-memory databases can only ever be shared by sharing 330the single database handle that created them, in circumstances where 331doing so is safe. The environment variable <code>TMPDIR</code> may 332be used as a directory in which to create temporary backing files. 333<p> 334<P> 335<DL> 336<DT><B>Parameters:</B><DD><CODE>fileName</CODE> - The name of an underlying file that will be used to back the database. 337On Windows platforms, this argument will be interpreted as a UTF-8 338string, which is equivalent to ASCII for Latin characters. 339<p><DD><CODE>databaseName</CODE> - An optional parameter that allows applications to have multiple 340databases in a single file. Although no databaseName parameter needs 341to be specified, it is an error to attempt to open a second database in 342a physical file that was not initially created using a databaseName 343parameter. Further, the databaseName parameter is not supported by the 344Queue format. 345<p><DD><CODE>primaryDatabase</CODE> - a database handle for the primary database that is to be indexed. 346<p><DD><CODE>config</CODE> - The secondary database open attributes. If null, default attributes are used. 347<DT><B>Throws:</B> 348<DD><CODE><A HREF="../../../com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</A></CODE> 349<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io">FileNotFoundException</A></CODE></DL> 350</DL> 351 352<!-- ============ METHOD DETAIL ========== --> 353 354<A NAME="method_detail"><!-- --></A> 355<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> 356<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> 357<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2"> 358<B>Method Detail</B></FONT></TH> 359</TR> 360</TABLE> 361 362<A NAME="openCursor(com.sleepycat.db.Transaction, com.sleepycat.db.CursorConfig)"><!-- --></A><H3> 363openCursor</H3> 364<PRE> 365public <A HREF="../../../com/sleepycat/db/Cursor.html" title="class in com.sleepycat.db">Cursor</A> <B>openCursor</B>(<A HREF="../../../com/sleepycat/db/Transaction.html" title="class in com.sleepycat.db">Transaction</A> txn, 366 <A HREF="../../../com/sleepycat/db/CursorConfig.html" title="class in com.sleepycat.db">CursorConfig</A> config) 367 throws <A HREF="../../../com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</A></PRE> 368<DL> 369<DD>Return a cursor into the database. 370 <p> 371<P> 372<DD><DL> 373<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/sleepycat/db/Database.html#openCursor(com.sleepycat.db.Transaction, com.sleepycat.db.CursorConfig)">openCursor</A></CODE> in class <CODE><A HREF="../../../com/sleepycat/db/Database.html" title="class in com.sleepycat.db">Database</A></CODE></DL> 374</DD> 375<DD><DL> 376<DT><B>Parameters:</B><DD><CODE>txn</CODE> - To use a cursor for writing to a transactional database, an explicit 377 transaction must be specified. For read-only access to a transactional 378 database, the transaction may be null. For a non-transactional database, 379 the transaction must be null. 380 <p> 381 To transaction-protect cursor operations, cursors must be opened and closed 382 within the context of a transaction, and the txn parameter specifies the 383 transaction context in which the cursor will be used. 384 <p><DD><CODE>config</CODE> - The cursor attributes. If null, default attributes are used. 385 <p> 386<DT><B>Returns:</B><DD>A database cursor. 387 <p> 388<DT><B>Throws:</B> 389<DD><CODE><A HREF="../../../com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</A></CODE> - if a failure occurs.</DL> 390</DD> 391</DL> 392<HR> 393 394<A NAME="openSecondaryCursor(com.sleepycat.db.Transaction, com.sleepycat.db.CursorConfig)"><!-- --></A><H3> 395openSecondaryCursor</H3> 396<PRE> 397public <A HREF="../../../com/sleepycat/db/SecondaryCursor.html" title="class in com.sleepycat.db">SecondaryCursor</A> <B>openSecondaryCursor</B>(<A HREF="../../../com/sleepycat/db/Transaction.html" title="class in com.sleepycat.db">Transaction</A> txn, 398 <A HREF="../../../com/sleepycat/db/CursorConfig.html" title="class in com.sleepycat.db">CursorConfig</A> config) 399 throws <A HREF="../../../com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</A></PRE> 400<DL> 401<DD>Obtain a cursor on a database, returning a <code>SecondaryCursor</code>. 402 Calling this method is the equivalent of calling <A HREF="../../../com/sleepycat/db/SecondaryDatabase.html#openCursor(com.sleepycat.db.Transaction, com.sleepycat.db.CursorConfig)"><CODE>openCursor(com.sleepycat.db.Transaction, com.sleepycat.db.CursorConfig)</CODE></A> and 403 casting the result to <A HREF="../../../com/sleepycat/db/SecondaryCursor.html" title="class in com.sleepycat.db"><CODE>SecondaryCursor</CODE></A>. 404 <p> 405<P> 406<DD><DL> 407<DT><B>Parameters:</B><DD><CODE>txn</CODE> - To use a cursor for writing to a transactional database, an explicit 408 transaction must be specified. For read-only access to a transactional 409 database, the transaction may be null. For a non-transactional database, 410 the transaction must be null. 411 <p> 412 To transaction-protect cursor operations, cursors must be opened and closed 413 within the context of a transaction, and the txn parameter specifies the 414 transaction context in which the cursor will be used. 415 <p><DD><CODE>config</CODE> - The cursor attributes. If null, default attributes are used. 416 <p> 417<DT><B>Returns:</B><DD>A secondary database cursor. 418 <p> 419<DT><B>Throws:</B> 420<DD><CODE><A HREF="../../../com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</A></CODE> - if a failure occurs.</DL> 421</DD> 422</DL> 423<HR> 424 425<A NAME="getPrimaryDatabase()"><!-- --></A><H3> 426getPrimaryDatabase</H3> 427<PRE> 428public <A HREF="../../../com/sleepycat/db/Database.html" title="class in com.sleepycat.db">Database</A> <B>getPrimaryDatabase</B>()</PRE> 429<DL> 430<DD>Returns the primary database associated with this secondary database. 431 <p> 432<P> 433<DD><DL> 434 435<DT><B>Returns:</B><DD>the primary database associated with this secondary database.</DL> 436</DD> 437</DL> 438<HR> 439 440<A NAME="getConfig()"><!-- --></A><H3> 441getConfig</H3> 442<PRE> 443public <A HREF="../../../com/sleepycat/db/DatabaseConfig.html" title="class in com.sleepycat.db">DatabaseConfig</A> <B>getConfig</B>() 444 throws <A HREF="../../../com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</A></PRE> 445<DL> 446<DD>Return this Database object's configuration. 447 <p> 448 This may differ from the configuration used to open this object if 449 the database existed previously. 450 <p> 451<P> 452<DD><DL> 453<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/sleepycat/db/Database.html#getConfig()">getConfig</A></CODE> in class <CODE><A HREF="../../../com/sleepycat/db/Database.html" title="class in com.sleepycat.db">Database</A></CODE></DL> 454</DD> 455<DD><DL> 456 457<DT><B>Returns:</B><DD>This Database object's configuration. 458 <p> 459 <p> 460<DT><B>Throws:</B> 461<DD><CODE><A HREF="../../../com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</A></CODE> - if a failure occurs.</DL> 462</DD> 463</DL> 464<HR> 465 466<A NAME="getSecondaryConfig()"><!-- --></A><H3> 467getSecondaryConfig</H3> 468<PRE> 469public <A HREF="../../../com/sleepycat/db/SecondaryConfig.html" title="class in com.sleepycat.db">SecondaryConfig</A> <B>getSecondaryConfig</B>() 470 throws <A HREF="../../../com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</A></PRE> 471<DL> 472<DD>Returns a copy of the secondary configuration of this database. 473 <p> 474<P> 475<DD><DL> 476 477<DT><B>Returns:</B><DD>a copy of the secondary configuration of this database. 478 <p> 479 <p> 480<DT><B>Throws:</B> 481<DD><CODE><A HREF="../../../com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</A></CODE> - if a failure occurs.</DL> 482</DD> 483</DL> 484<HR> 485 486<A NAME="get(com.sleepycat.db.Transaction, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.LockMode)"><!-- --></A><H3> 487get</H3> 488<PRE> 489public <A HREF="../../../com/sleepycat/db/OperationStatus.html" title="class in com.sleepycat.db">OperationStatus</A> <B>get</B>(<A HREF="../../../com/sleepycat/db/Transaction.html" title="class in com.sleepycat.db">Transaction</A> txn, 490 <A HREF="../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A> key, 491 <A HREF="../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A> pKey, 492 <A HREF="../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A> data, 493 <A HREF="../../../com/sleepycat/db/LockMode.html" title="class in com.sleepycat.db">LockMode</A> lockMode) 494 throws <A HREF="../../../com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</A></PRE> 495<DL> 496<DD>Retrieves the key/data pair with the given key. If the matching key has 497duplicate values, the first data item in the set of duplicates is returned. 498Retrieval of duplicates requires the use of <A HREF="../../../com/sleepycat/db/Cursor.html" title="class in com.sleepycat.db"><CODE>Cursor</CODE></A> operations. 499<p> 500<P> 501<DD><DL> 502<DT><B>Parameters:</B><DD><CODE>txn</CODE> - For a transactional database, an explicit transaction may be specified to 503transaction-protect the operation, or null may be specified to perform the 504operation without transaction protection. For a non-transactional database, 505null must be specified. 506<p><DD><CODE>key</CODE> - the secondary key 507used as input. It must be initialized with a non-null byte array by the 508caller. 509<p><DD><CODE>pKey</CODE> - the primary key 510returned as output. Its byte array does not need to be initialized by the 511caller. 512<p><DD><CODE>data</CODE> - the primary data 513returned as output. Its byte array does not need to be initialized by the 514caller. 515<p><DD><CODE>lockMode</CODE> - the locking attributes; if null, default attributes are used. 516<p> 517<DT><B>Returns:</B><DD><A HREF="../../../com/sleepycat/db/OperationStatus.html#NOTFOUND"><CODE>OperationStatus.NOTFOUND</CODE></A> if no matching key/data pair is 518found; <A HREF="../../../com/sleepycat/db/OperationStatus.html#KEYEMPTY"><CODE>OperationStatus.KEYEMPTY</CODE></A> if the database is a Queue or Recno database and the specified key exists, but was never explicitly created by the application or was later deleted; otherwise, <A HREF="../../../com/sleepycat/db/OperationStatus.html#SUCCESS"><CODE>OperationStatus.SUCCESS</CODE></A>. 519<p> 520<p> 521<DT><B>Throws:</B> 522<DD><CODE><A HREF="../../../com/sleepycat/db/DeadlockException.html" title="class in com.sleepycat.db">DeadlockException</A></CODE> - if the operation was selected to resolve a 523deadlock. 524<p> 525<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</A></CODE> - if an invalid parameter was specified. 526<p> 527<DD><CODE><A HREF="../../../com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</A></CODE> - if a failure occurs.</DL> 528</DD> 529</DL> 530<HR> 531 532<A NAME="getSearchBoth(com.sleepycat.db.Transaction, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.LockMode)"><!-- --></A><H3> 533getSearchBoth</H3> 534<PRE> 535public <A HREF="../../../com/sleepycat/db/OperationStatus.html" title="class in com.sleepycat.db">OperationStatus</A> <B>getSearchBoth</B>(<A HREF="../../../com/sleepycat/db/Transaction.html" title="class in com.sleepycat.db">Transaction</A> txn, 536 <A HREF="../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A> key, 537 <A HREF="../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A> pKey, 538 <A HREF="../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A> data, 539 <A HREF="../../../com/sleepycat/db/LockMode.html" title="class in com.sleepycat.db">LockMode</A> lockMode) 540 throws <A HREF="../../../com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</A></PRE> 541<DL> 542<DD>Retrieves the key/data pair with the specified secondary and primary key, that 543is, both the primary and secondary key items must match. 544<p> 545<P> 546<DD><DL> 547<DT><B>Parameters:</B><DD><CODE>txn</CODE> - For a transactional database, an explicit transaction may be specified to 548transaction-protect the operation, or null may be specified to perform the 549operation without transaction protection. For a non-transactional database, 550null must be specified.<DD><CODE>key</CODE> - the secondary key 551used as input. It must be initialized with a non-null byte array by the 552caller.<DD><CODE>pKey</CODE> - the primary key 553used as input. It must be initialized with a non-null byte array by the 554caller.<DD><CODE>data</CODE> - the primary data 555returned as output. Its byte array does not need to be initialized by the 556caller. 557<p><DD><CODE>lockMode</CODE> - the locking attributes; if null, default attributes are used. 558<p> 559<DT><B>Returns:</B><DD><A HREF="../../../com/sleepycat/db/OperationStatus.html#NOTFOUND"><CODE>OperationStatus.NOTFOUND</CODE></A> if no matching key/data pair is 560found; <A HREF="../../../com/sleepycat/db/OperationStatus.html#KEYEMPTY"><CODE>OperationStatus.KEYEMPTY</CODE></A> if the database is a Queue or Recno database and the specified key exists, but was never explicitly created by the application or was later deleted; otherwise, <A HREF="../../../com/sleepycat/db/OperationStatus.html#SUCCESS"><CODE>OperationStatus.SUCCESS</CODE></A>. 561<p> 562<p> 563<DT><B>Throws:</B> 564<DD><CODE><A HREF="../../../com/sleepycat/db/DeadlockException.html" title="class in com.sleepycat.db">DeadlockException</A></CODE> - if the operation was selected to resolve a 565deadlock. 566<p> 567<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</A></CODE> - if an invalid parameter was specified. 568<p> 569<DD><CODE><A HREF="../../../com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</A></CODE> - if a failure occurs.</DL> 570</DD> 571</DL> 572<HR> 573 574<A NAME="getSearchRecordNumber(com.sleepycat.db.Transaction, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.LockMode)"><!-- --></A><H3> 575getSearchRecordNumber</H3> 576<PRE> 577public <A HREF="../../../com/sleepycat/db/OperationStatus.html" title="class in com.sleepycat.db">OperationStatus</A> <B>getSearchRecordNumber</B>(<A HREF="../../../com/sleepycat/db/Transaction.html" title="class in com.sleepycat.db">Transaction</A> txn, 578 <A HREF="../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A> key, 579 <A HREF="../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A> pKey, 580 <A HREF="../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A> data, 581 <A HREF="../../../com/sleepycat/db/LockMode.html" title="class in com.sleepycat.db">LockMode</A> lockMode) 582 throws <A HREF="../../../com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</A></PRE> 583<DL> 584<DD>Retrieves the key/data pair associated with the specific numbered record of the database. 585<p> 586The data field of the specified key must be a byte array containing a 587record number, as described in <A HREF="../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db"><CODE>DatabaseEntry</CODE></A>. This determines 588the record to be retrieved. 589<p> 590For this method to be called, the underlying database must be of type 591Btree, and it must have been configured to support record numbers. 592<p> 593If this method fails for any reason, the position of the cursor will be 594unchanged. 595<P> 596<DD><DL> 597<DT><B>Parameters:</B><DD><CODE>key</CODE> - the secondary key 598returned as output. Its byte array does not need to be initialized by the 599caller.<DD><CODE>pKey</CODE> - the primary key 600returned as output. Its byte array does not need to be initialized by the 601caller.<DD><CODE>data</CODE> - the primary data 602returned as output. Multiple results can be retrieved by passing an object 603that is a subclass of <A HREF="../../../com/sleepycat/db/MultipleEntry.html" title="class in com.sleepycat.db"><CODE>MultipleEntry</CODE></A>, otherwise its byte array does not 604need to be initialized by the caller.<DD><CODE>lockMode</CODE> - the locking attributes; if null, default attributes are used. 605<DT><B>Returns:</B><DD><A HREF="../../../com/sleepycat/db/OperationStatus.html#NOTFOUND"><CODE>OperationStatus.NOTFOUND</CODE></A> if no matching key/data pair is 606found; <A HREF="../../../com/sleepycat/db/OperationStatus.html#KEYEMPTY"><CODE>OperationStatus.KEYEMPTY</CODE></A> if the database is a Queue or Recno database and the specified key exists, but was never explicitly created by the application or was later deleted; otherwise, <A HREF="../../../com/sleepycat/db/OperationStatus.html#SUCCESS"><CODE>OperationStatus.SUCCESS</CODE></A>. 607<DT><B>Throws:</B> 608<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</A></CODE> - if a DatabaseEntry parameter is null or 609does not contain a required non-null byte array. 610<p> 611<DD><CODE><A HREF="../../../com/sleepycat/db/DeadlockException.html" title="class in com.sleepycat.db">DeadlockException</A></CODE> - if the operation was selected to resolve a 612deadlock. 613<p> 614<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</A></CODE> - if an invalid parameter was specified. 615<p> 616<DD><CODE><A HREF="../../../com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</A></CODE> - if a failure occurs. 617<p></DL> 618</DD> 619</DL> 620<!-- ========= END OF CLASS DATA ========= --> 621<HR> 622 623 624<!-- ======= START OF BOTTOM NAVBAR ====== --> 625<A NAME="navbar_bottom"><!-- --></A> 626<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A> 627<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""> 628<TR> 629<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> 630<A NAME="navbar_bottom_firstrow"><!-- --></A> 631<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> 632 <TR ALIGN="center" VALIGN="top"> 633 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD> 634 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> 635 <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> 636 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/SecondaryDatabase.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD> 637 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> 638 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> 639 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> 640 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> 641 </TR> 642</TABLE> 643</TD> 644<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> 645<b>Berkeley DB</b><br><font size="-1"> version 4.8.30</font></EM> 646</TD> 647</TR> 648 649<TR> 650<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> 651 <A HREF="../../../com/sleepycat/db/SecondaryCursor.html" title="class in com.sleepycat.db"><B>PREV CLASS</B></A> 652 <A HREF="../../../com/sleepycat/db/SecondaryKeyCreator.html" title="interface in com.sleepycat.db"><B>NEXT CLASS</B></A></FONT></TD> 653<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> 654 <A HREF="../../../index.html?com/sleepycat/db/SecondaryDatabase.html" target="_top"><B>FRAMES</B></A> 655 <A HREF="SecondaryDatabase.html" target="_top"><B>NO FRAMES</B></A> 656 <SCRIPT type="text/javascript"> 657 <!-- 658 if(window==top) { 659 document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>'); 660 } 661 //--> 662</SCRIPT> 663<NOSCRIPT> 664 <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A> 665</NOSCRIPT> 666 667 668</FONT></TD> 669</TR> 670<TR> 671<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> 672 SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD> 673<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> 674DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD> 675</TR> 676</TABLE> 677<A NAME="skip-navbar_bottom"></A> 678<!-- ======== END OF BOTTOM NAVBAR ======= --> 679 680<HR> 681<font size=1>Copyright (c) 1996-2009 Oracle. All rights reserved.</font> 682</BODY> 683</HTML> 684