Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 5f6a0f44833c91f8dc820f750a03ec3d > files > 49

libdbi-devel-0.8.3-3mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Managing Queries</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Database Independent Abstraction Layer for C"
HREF="index.html"><LINK
REL="UP"
TITLE="libdbi API Reference"
HREF="reference.html"><LINK
REL="PREVIOUS"
TITLE="SQL and Database Infrastructure"
HREF="reference-database.html"><LINK
REL="NEXT"
TITLE="Managing Results"
HREF="reference-results.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Database Independent Abstraction Layer for C: libdbi Programmer's Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="reference-database.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 4. libdbi API Reference</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="reference-results.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="REFERENCE-QUERY"
>4.5. Managing Queries</A
></H1
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="DBI-CONN-QUERY"
>4.5.1. dbi_conn_query</A
></H2
><DIV
CLASS="FUNCSYNOPSIS"
><P
></P
><A
NAME="AEN1319"
></A
><P
><CODE
><CODE
CLASS="FUNCDEF"
>dbi_result <B
CLASS="FSFUNC"
>dbi_conn_query</B
></CODE
>(dbi_conn <VAR
CLASS="PDPARAM"
>Conn</VAR
>, const char *<VAR
CLASS="PDPARAM"
>statement</VAR
>);</CODE
></P
><P
></P
></DIV
><P
>Execute the specified SQL query statement.</P
><P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
>Arguments</DT
><DD
><P
><TT
CLASS="LITERAL"
>Conn</TT
>: The target connection.</P
><P
><TT
CLASS="LITERAL"
>statement</TT
>: A string containing the SQL statement.</P
></DD
><DT
>Returns</DT
><DD
><P
>A query result object, or NULL if there was an error. In the latter case the <A
HREF="errornumbers.html"
>error number</A
> is a database engine-specific nonzero value.</P
></DD
></DL
></DIV
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="DBI-CONN-QUERYF"
>4.5.2. dbi_conn_queryf</A
></H2
><DIV
CLASS="FUNCSYNOPSIS"
><P
></P
><A
NAME="AEN1343"
></A
><P
><CODE
><CODE
CLASS="FUNCDEF"
>dbi_result <B
CLASS="FSFUNC"
>dbi_conn_queryf</B
></CODE
>(dbi_conn <VAR
CLASS="PDPARAM"
>Conn</VAR
>, const char *<VAR
CLASS="PDPARAM"
>formatstr</VAR
>, <VAR
CLASS="PDPARAM"
>...</VAR
>);</CODE
></P
><P
></P
></DIV
><P
>Execute the specified SQL query statement.</P
><P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
>Arguments</DT
><DD
><P
><TT
CLASS="LITERAL"
>Conn</TT
>: The target connection.</P
><P
><TT
CLASS="LITERAL"
>formatstr</TT
>: The format string for the SQL statement. It uses the same format as printf().</P
><P
><TT
CLASS="LITERAL"
>ARG</TT
>: (...) Any variables that correspond to the printf-like format string.</P
></DD
><DT
>Returns</DT
><DD
><P
>A query result object, or NULL if there was an error. In the latter case the <A
HREF="errornumbers.html"
>error number</A
> is a database engine-specific nonzero value.</P
></DD
></DL
></DIV
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="DBI-CONN-QUERY-NULL"
>4.5.3. dbi_conn_query_null</A
></H2
><DIV
CLASS="FUNCSYNOPSIS"
><P
></P
><A
NAME="AEN1371"
></A
><P
><CODE
><CODE
CLASS="FUNCDEF"
>dbi_result <B
CLASS="FSFUNC"
>dbi_conn_query_null</B
></CODE
>(dbi_conn <VAR
CLASS="PDPARAM"
>Conn</VAR
>, const unsigned char *<VAR
CLASS="PDPARAM"
>statement</VAR
>, unsigned long <VAR
CLASS="PDPARAM"
>st_length</VAR
>);</CODE
></P
><P
></P
></DIV
><P
>Execute the specified SQL query statement, which may contain valid NULL characters.</P
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
>This function is not implemented by all database drivers. For a portable way of including binary strings into SQL queries, see the function <A
HREF="reference-query.html#DBI-CONN-QUOTE-BINARY-COPY"
>dbi_conn_quote_binary_copy</A
>.</P
></BLOCKQUOTE
></DIV
><P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
>Arguments</DT
><DD
><P
><TT
CLASS="LITERAL"
>Conn</TT
>: The target connection.</P
><P
><TT
CLASS="LITERAL"
>statement</TT
>: The SQL statement, which may contain binary data.</P
><P
><TT
CLASS="LITERAL"
>st_length</TT
>: The number of characters in the non-null-terminated statement string.</P
></DD
><DT
>Returns</DT
><DD
><P
>A query result object, or NULL if there was an error. In the latter case the <A
HREF="errornumbers.html"
>error number</A
> is a database engine-specific nonzero value.</P
></DD
></DL
></DIV
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="DBI-CONN-SEQUENCE-LAST"
>4.5.4. dbi_conn_sequence_last</A
></H2
><DIV
CLASS="FUNCSYNOPSIS"
><P
></P
><A
NAME="AEN1402"
></A
><P
><CODE
><CODE
CLASS="FUNCDEF"
>unsigned long long <B
CLASS="FSFUNC"
>dbi_conn_sequence_last</B
></CODE
>(dbi_conn <VAR
CLASS="PDPARAM"
>Conn</VAR
>, const char *<VAR
CLASS="PDPARAM"
>name</VAR
>);</CODE
></P
><P
></P
></DIV
><P
>Requests the row ID generated by the last <B
CLASS="COMMAND"
>INSERT</B
> command. The row ID is most commonly generated by an auto-incrementing column in the table. Use the return value to address the dataset that was last inserted.</P
><P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
>Arguments</DT
><DD
><P
><TT
CLASS="LITERAL"
>Conn</TT
>: The current database connection.</P
><P
><TT
CLASS="LITERAL"
>name</TT
>: The name of the sequence, or NULL if the database engine does not use explicit sequences.</P
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
>You may have noted that this function does not sufficiently encapsulate the peculiarities of the underlying database engines. You must keep track of sequence names yourself if your target database engine does use sequences.</P
></BLOCKQUOTE
></DIV
></DD
><DT
>Returns</DT
><DD
><P
>An integer value corresponding to the ID that was created by the last <B
CLASS="COMMAND"
>INSERT</B
> command. If the database engine does not support sequences, the function returns 0 (zero) and sets the <A
HREF="errornumbers.html"
>error number</A
> to DBI_ERROR_UNSUPPORTED.</P
></DD
></DL
></DIV
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="DBI-CONN-SEQUENCE-NEXT"
>4.5.5. dbi_conn_sequence_next</A
></H2
><DIV
CLASS="FUNCSYNOPSIS"
><P
></P
><A
NAME="AEN1430"
></A
><P
><CODE
><CODE
CLASS="FUNCDEF"
>unsigned long long <B
CLASS="FSFUNC"
>dbi_conn_sequence_next</B
></CODE
>(dbi_conn <VAR
CLASS="PDPARAM"
>Conn</VAR
>, const char *<VAR
CLASS="PDPARAM"
>name</VAR
>);</CODE
></P
><P
></P
></DIV
><P
>Requests the row ID that would be generated by the next <B
CLASS="COMMAND"
>INSERT</B
> command. The row ID is most commonly generated by an auto-incrementing column in the table.</P
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
>Not all database engines support this feature. Portable code should use <A
HREF="reference-query.html#DBI-CONN-SEQUENCE-LAST"
>dbi_conn_sequence_last</A
> instead.</P
></BLOCKQUOTE
></DIV
><P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
>Arguments</DT
><DD
><P
><TT
CLASS="LITERAL"
>Conn</TT
>: The current database connection.</P
><P
><TT
CLASS="LITERAL"
>name</TT
>: The name of the sequence, or NULL if the database engine does not use explicit sequences.</P
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
>You may have noted that this function does not sufficiently encapsulate the peculiarities of the underlying database engines. You must keep track of sequence names yourself if your target database engine does use sequences.</P
></BLOCKQUOTE
></DIV
></DD
><DT
>Returns</DT
><DD
><P
>An integer value corresponding to the ID that was created by the last <B
CLASS="COMMAND"
>INSERT</B
> command, or 0 if the database engine does not support this feature. In the latter case, the <A
HREF="errornumbers.html"
>error number</A
> is DBI_ERROR_UNSUPPORTED</P
></DD
></DL
></DIV
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="DBI-CONN-PING"
>4.5.6. dbi_conn_ping</A
></H2
><DIV
CLASS="FUNCSYNOPSIS"
><P
></P
><A
NAME="AEN1461"
></A
><P
><CODE
><CODE
CLASS="FUNCDEF"
>int <B
CLASS="FSFUNC"
>dbi_conn_ping</B
></CODE
>(dbi_conn <VAR
CLASS="PDPARAM"
>Conn</VAR
>);</CODE
></P
><P
></P
></DIV
><P
>Checks whether the current connection is still alive. Use this function to decide whether you must reconnect before running a query if your program is designed to keep connections open over prolonged periods of time.</P
><P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
>Arguments</DT
><DD
><P
><TT
CLASS="LITERAL"
>Conn</TT
>: The current database connection.</P
></DD
><DT
>Returns</DT
><DD
><P
>1 if the connection is alive. Otherwise the function returns 0.</P
><DIV
CLASS="NOTE"
><BLOCKQUOTE
CLASS="NOTE"
><P
><B
>Note: </B
>Database drivers may attempt to reconnect automatically if this function is called. If the reconnect is successful, this function will also return 1, as if the connection never had gone down.</P
></BLOCKQUOTE
></DIV
></DD
></DL
></DIV
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="DBI-CONN-QUOTE-STRING"
>4.5.7. dbi_conn_quote_string</A
></H2
><DIV
CLASS="FUNCSYNOPSIS"
><P
></P
><A
NAME="AEN1482"
></A
><P
><CODE
><CODE
CLASS="FUNCDEF"
>size_t <B
CLASS="FSFUNC"
>dbi_conn_quote_string</B
></CODE
>(dbi_conn <VAR
CLASS="PDPARAM"
>Conn</VAR
>, char **<VAR
CLASS="PDPARAM"
>orig</VAR
>);</CODE
></P
><P
></P
></DIV
><P
>Escapes any special characters in a string and places the string itself in quotes so the string can be sent to the database engine as a query string, using either <A
HREF="reference-query.html#DBI-CONN-QUERY"
>dbi_conn_query</A
> or <A
HREF="reference-query.html#DBI-CONN-QUERYF"
>dbi_conn_queryf</A
>. The original string will be freed and <CODE
CLASS="PARAMETER"
>orig</CODE
> will point to a newly allocated one (which you still must free on your own). If an error occurs, the original string will be left alone. This function is preferred over <A
HREF="reference-driver.html#DBI-DRIVER-QUOTE-STRING"
>dbi_driver_quote_string</A
> because it takes the character encoding of the current connection into account when performing the escaping.</P
><P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
>Arguments</DT
><DD
><P
><TT
CLASS="LITERAL"
>Conn</TT
>: The current database connection.</P
><P
><TT
CLASS="LITERAL"
>orig</TT
>: A pointer to the string to quote and escape.</P
></DD
><DT
>Returns</DT
><DD
><P
>The new string's length in bytes, excluding the terminating zero byte, or 0 in case of an error. The length of a quoted empty string is 2 bytes. In case of an error the <A
HREF="errornumbers.html"
>error number</A
> is DBI_ERROR_BADPTR or DBI_ERROR_NOMEM.</P
></DD
></DL
></DIV
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="DBI-CONN-QUOTE-STRING-COPY"
>4.5.8. dbi_conn_quote_string_copy</A
></H2
><DIV
CLASS="FUNCSYNOPSIS"
><P
></P
><A
NAME="AEN1510"
></A
><P
><CODE
><CODE
CLASS="FUNCDEF"
>size_t <B
CLASS="FSFUNC"
>dbi_conn_quote_string_copy</B
></CODE
>(dbi_conn <VAR
CLASS="PDPARAM"
>Conn</VAR
>, char *<VAR
CLASS="PDPARAM"
>orig</VAR
>, char **<VAR
CLASS="PDPARAM"
>newstr</VAR
>);</CODE
></P
><P
></P
></DIV
><P
>Escapes any special characters in a string and places the string itself in quotes so the string can be sent to the database engine as a query string, using either <A
HREF="reference-query.html#DBI-CONN-QUERY"
>dbi_conn_query</A
> or <A
HREF="reference-query.html#DBI-CONN-QUERYF"
>dbi_conn_queryf</A
>. The original string will be left alone, and <CODE
CLASS="PARAMETER"
>newstr</CODE
> will point to a newly allocated string containing the quoted string (which you still must free on your own). If the function fails, <CODE
CLASS="PARAMETER"
>newstr</CODE
> is an invalid pointer that must not be freed. This function is preferred over <A
HREF="reference-driver.html#DBI-DRIVER-QUOTE-STRING-COPY"
>dbi_driver_quote_string_copy</A
> because it takes the character encoding of the current connection into account when performing the escaping.</P
><P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
>Arguments</DT
><DD
><P
><TT
CLASS="LITERAL"
>Conn</TT
>: The current database connection.</P
><P
><TT
CLASS="LITERAL"
>orig</TT
>: A pointer to the string to quote and escape.</P
><P
><TT
CLASS="LITERAL"
>newstr</TT
>: After the function returns, this pointer will point to the quoted and escaped string.</P
></DD
><DT
>Returns</DT
><DD
><P
>The new string's length in bytes, excluding the terminating zero byte, or 0 in case of an error. Possible <A
HREF="errornumbers.html"
>error numbers</A
> are DBI_ERROR_BADPTR and DBI_ERROR_NOMEM.</P
></DD
></DL
></DIV
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="DBI-CONN-QUOTE-BINARY-COPY"
>4.5.9. dbi_conn_quote_binary_copy</A
></H2
><DIV
CLASS="FUNCSYNOPSIS"
><P
></P
><A
NAME="AEN1543"
></A
><P
><CODE
><CODE
CLASS="FUNCDEF"
>size_t <B
CLASS="FSFUNC"
>dbi_conn_quote_binary_copy</B
></CODE
>(dbi_conn <VAR
CLASS="PDPARAM"
>Conn</VAR
>, char *<VAR
CLASS="PDPARAM"
>orig</VAR
>, size_t <VAR
CLASS="PDPARAM"
>from_length</VAR
>, char **<VAR
CLASS="PDPARAM"
>newstr</VAR
>);</CODE
></P
><P
></P
></DIV
><P
>Escapes any special characters, including null bytes, in a binary string and places the resulting string in quotes so it can be used in an SQL query. The original string will be left alone, and <CODE
CLASS="PARAMETER"
>newstr</CODE
> will point to a newly allocated string containing the quoted string (which you still must free on your own). If an error occurs, <CODE
CLASS="PARAMETER"
>newstr</CODE
> is an invalid pointer which must not be freed.</P
><P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
>Arguments</DT
><DD
><P
><TT
CLASS="LITERAL"
>Conn</TT
>: The current database connection.</P
><P
><TT
CLASS="LITERAL"
>orig</TT
>: A pointer to the string to quote and escape.</P
><P
><TT
CLASS="LITERAL"
>from_length</TT
>: The length of the binary string in bytes.</P
><P
><TT
CLASS="LITERAL"
>newstr</TT
>: After the function returns, this pointer will point to the quoted and escaped string.</P
></DD
><DT
>Returns</DT
><DD
><P
>The new string's length in bytes, excluding the terminating zero byte, or 0 in case of an error. Possible <A
HREF="errornumbers.html"
>error numbers</A
> are DBI_ERROR_BADPTR and DBI_ERROR_NOMEM.</P
></DD
></DL
></DIV
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="DBI-CONN-ESCAPE-STRING"
>4.5.10. dbi_conn_escape_string</A
></H2
><DIV
CLASS="FUNCSYNOPSIS"
><P
></P
><A
NAME="AEN1577"
></A
><P
><CODE
><CODE
CLASS="FUNCDEF"
>size_t <B
CLASS="FSFUNC"
>dbi_conn_escape_string</B
></CODE
>(dbi_conn <VAR
CLASS="PDPARAM"
>Conn</VAR
>, char **<VAR
CLASS="PDPARAM"
>orig</VAR
>);</CODE
></P
><P
></P
></DIV
><P
>Works like <A
HREF="reference-query.html#DBI-CONN-QUOTE-STRING"
>dbi_conn_quote_string</A
> but does not surround the resulting string with quotes.</P
><P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
>Arguments</DT
><DD
><P
><TT
CLASS="LITERAL"
>Conn</TT
>: The current database connection.</P
><P
><TT
CLASS="LITERAL"
>orig</TT
>: A pointer to the string to quote and escape.</P
></DD
><DT
>Returns</DT
><DD
><P
>The new string's length in bytes, excluding the terminating zero byte, or 0 in case of an error. The length of a quoted empty string is 2 bytes. In case of an error the <A
HREF="errornumbers.html"
>error number</A
> is DBI_ERROR_BADPTR or DBI_ERROR_NOMEM.</P
></DD
></DL
></DIV
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="DBI-CONN-ESCAPE-STRING-COPY"
>4.5.11. dbi_conn_escape_string_copy</A
></H2
><DIV
CLASS="FUNCSYNOPSIS"
><P
></P
><A
NAME="AEN1602"
></A
><P
><CODE
><CODE
CLASS="FUNCDEF"
>size_t <B
CLASS="FSFUNC"
>dbi_conn_escape_string_copy</B
></CODE
>(dbi_conn <VAR
CLASS="PDPARAM"
>Conn</VAR
>, char *<VAR
CLASS="PDPARAM"
>orig</VAR
>, char **<VAR
CLASS="PDPARAM"
>newstr</VAR
>);</CODE
></P
><P
></P
></DIV
><P
>Works like <A
HREF="reference-query.html#DBI-CONN-QUOTE-STRING-COPY"
>dbi_conn_quote_string_copy</A
> but does not surround the resulting string with quotes.</P
><P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
>Arguments</DT
><DD
><P
><TT
CLASS="LITERAL"
>Conn</TT
>: The current database connection.</P
><P
><TT
CLASS="LITERAL"
>orig</TT
>: A pointer to the string to quote and escape.</P
><P
><TT
CLASS="LITERAL"
>newstr</TT
>: After the function returns, this pointer will point to the quoted and escaped string.</P
></DD
><DT
>Returns</DT
><DD
><P
>The new string's length in bytes, excluding the terminating zero byte, or 0 in case of an error. Possible <A
HREF="errornumbers.html"
>error numbers</A
> are DBI_ERROR_BADPTR and DBI_ERROR_NOMEM.</P
></DD
></DL
></DIV
></DIV
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="DBI-CONN-ESCAPE-BINARY-COPY"
>4.5.12. dbi_conn_escape_binary_copy</A
></H2
><DIV
CLASS="FUNCSYNOPSIS"
><P
></P
><A
NAME="AEN1631"
></A
><P
><CODE
><CODE
CLASS="FUNCDEF"
>size_t <B
CLASS="FSFUNC"
>dbi_conn_escape_binary_copy</B
></CODE
>(dbi_conn <VAR
CLASS="PDPARAM"
>Conn</VAR
>, char *<VAR
CLASS="PDPARAM"
>orig</VAR
>, size_t <VAR
CLASS="PDPARAM"
>from_length</VAR
>, char **<VAR
CLASS="PDPARAM"
>newstr</VAR
>);</CODE
></P
><P
></P
></DIV
><P
>Works like <A
HREF="reference-query.html#DBI-CONN-QUOTE-BINARY-COPY"
>dbi_conn_quote_binary_copy</A
> but does not surround the resulting string with quotes.</P
><P
></P
><DIV
CLASS="VARIABLELIST"
><DL
><DT
>Arguments</DT
><DD
><P
><TT
CLASS="LITERAL"
>Conn</TT
>: The current database connection.</P
><P
><TT
CLASS="LITERAL"
>orig</TT
>: A pointer to the string to quote and escape.</P
><P
><TT
CLASS="LITERAL"
>from_length</TT
>: The length of the binary string in bytes.</P
><P
><TT
CLASS="LITERAL"
>newstr</TT
>: After the function returns, this pointer will point to the quoted and escaped string.</P
></DD
><DT
>Returns</DT
><DD
><P
>The new string's length in bytes, excluding the terminating zero byte, or 0 in case of an error. Possible <A
HREF="errornumbers.html"
>error numbers</A
> are DBI_ERROR_BADPTR and DBI_ERROR_NOMEM.</P
></DD
></DL
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="reference-database.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="reference-results.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>SQL and Database Infrastructure</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="reference.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Managing Results</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>