<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- Generated by xml_proto.php v2.3. Found in /scripts directory of phpdoc. -->
<refentry xml:id="function.db2-server-info" xmlns="http://docbook.org/ns/docbook">
 <refnamediv>
  <refname>db2_server_info</refname>
  <refpurpose>Returns an object with properties that describe the DB2 database server</refpurpose>
 </refnamediv>
 <refsect1 role="description">
  &reftitle.description;
  <methodsynopsis>
   <type>object</type><methodname>db2_server_info</methodname>
   <methodparam><type>resource</type><parameter>connection</parameter></methodparam>
  </methodsynopsis>

  <para>
   This function returns an object with read-only properties that return
   information about the IBM DB2, Cloudscape, or Apache Derby database server.
   The following table lists the database server properties:
   <table>
    <title>Database server properties</title>
    <tgroup cols="3">
     <thead>
      <row>
       <entry>Property name</entry>
       <entry>Return type</entry>
       <entry>Description</entry>
      </row>
     </thead>
     <tbody>
      <row>
       <entry>DBMS_NAME</entry>
       <entry>string</entry>
       <entry>The name of the database server to which you are
        connected. For DB2 servers this is a combination of
        <literal>DB2</literal> followed by the operating system on which
        the database server is running.</entry>
      </row>
      <row>
       <entry>DBMS_VER</entry>
       <entry>string</entry>
       <entry>The version of the database server, in the form of a string
       "MM.mm.uuuu" where <varname>MM</varname> is the major version, 
        <varname>mm</varname> is the minor version,
        and <varname>uuuu</varname> is the update. For example, "08.02.0001"
        represents major version 8, minor version 2, update 1.
       </entry>
      </row>
      <row>
       <entry>DB_CODEPAGE</entry>
       <entry>int</entry>
       <entry>The code page of the database to which you are connected.</entry>
      </row>
      <row>
       <entry>DB_NAME</entry>
       <entry>string</entry>
       <entry>The name of the database to which you are connected.</entry>
      </row>
      <row>
       <entry>DFT_ISOLATION</entry>
       <entry>string</entry>
       <entry>
        <para>The default transaction isolation level supported by the
        server:
        <variablelist>
         <varlistentry>
          <term>UR</term>
          <listitem>
           <para>
            Uncommitted read: changes are immediately visible by all
            concurrent transactions.
           </para>
          </listitem>
         </varlistentry>
         <varlistentry>
          <term>CS</term>
          <listitem>
           <para>
            Cursor stability: a row read by one transaction can be altered and
            committed by a second concurrent transaction.
           </para>
          </listitem>
         </varlistentry>
         <varlistentry>
          <term>RS</term>
          <listitem>
           <para>
            Read stability: a transaction can add or remove rows matching a
            search condition or a pending transaction.
           </para>
          </listitem>
         </varlistentry>
         <varlistentry>
          <term>RR</term>
          <listitem>
           <para>
            Repeatable read: data affected by pending transaction is not
            available to other transactions.
           </para>
          </listitem>
         </varlistentry>
         <varlistentry>
          <term>NC</term>
          <listitem>
           <para>
            No commit: any changes are visible at the end of a successful
            operation. Explicit commits and rollbacks are not allowed.
           </para>
          </listitem>
         </varlistentry>
        </variablelist>
        </para>
       </entry>
      </row>
      <row>
       <entry>IDENTIFIER_QUOTE_CHAR</entry>
       <entry>string</entry>
       <entry>The character used to delimit an identifier.</entry>
      </row>
      <row>
       <entry>INST_NAME</entry>
       <entry>string</entry>
       <entry>The instance on the database server that contains the
        database.</entry>
      </row>
      <row>
       <entry>ISOLATION_OPTION</entry>
       <entry>array</entry>
       <entry>An array of the isolation options supported by the
        database server. The isolation options are described in
        the DFT_ISOLATION property.</entry>
      </row>
      <row>
       <entry>KEYWORDS</entry>
       <entry>array</entry>
       <entry>An array of the keywords reserved by the database
        server.</entry>
      </row>
      <row>
       <entry>LIKE_ESCAPE_CLAUSE</entry>
       <entry>bool</entry>
       <entry>&true; if the database server supports the
       use of <literal>%</literal> and <literal>_</literal> wildcard
       characters. &false; if the database server does not
       support these wildcard characters.</entry>
      </row>
      <row>
       <entry>MAX_COL_NAME_LEN</entry>
       <entry>int</entry>
       <entry>Maximum length of a column name supported by the database
       server, expressed in bytes.</entry>
      </row>
      <row>
       <entry>MAX_IDENTIFIER_LEN</entry>
       <entry>int</entry>
       <entry>Maximum length of an SQL identifier supported by the database
       server, expressed in characters.</entry>
      </row>
      <row>
       <entry>MAX_INDEX_SIZE</entry>
       <entry>int</entry>
       <entry>Maximum size of columns combined in an index supported by the
        database server, expressed in bytes.</entry>
      </row>
      <row>
       <entry>MAX_PROC_NAME_LEN</entry>
       <entry>int</entry>
       <entry>Maximum length of a procedure name supported by the database
       server, expressed in bytes.</entry>
      </row>
      <row>
       <entry>MAX_ROW_SIZE</entry>
       <entry>int</entry>
       <entry>Maximum length of a row in a base table supported by the
       database server, expressed in bytes.</entry>
      </row>
      <row>
       <entry>MAX_SCHEMA_NAME_LEN</entry>
       <entry>int</entry>
       <entry>Maximum length of a schema name supported by the database
       server, expressed in bytes.</entry>
      </row>
      <row>
       <entry>MAX_STATEMENT_LEN</entry>
       <entry>int</entry>
       <entry>Maximum length of an SQL statement supported by the database
       server, expressed in bytes.</entry>
      </row>
      <row>
       <entry>MAX_TABLE_NAME_LEN</entry>
       <entry>int</entry>
       <entry>Maximum length of a table name supported by the database
       server, expressed in bytes.</entry>
      </row>
      <row>
       <entry>NON_NULLABLE_COLUMNS</entry>
       <entry>bool</entry>
       <entry>&true; if the database server supports columns that can be
        defined as NOT NULL, &false; if the database server does not support
        columns defined as NOT NULL.</entry>
      </row>
      <row>
       <entry>PROCEDURES</entry>
       <entry>bool</entry>
       <entry>&true; if the database server supports the use of the CALL
        statement to call stored procedures, &false; if the database
        server does not support the CALL statement.</entry>
      </row>
      <row>
       <entry>SPECIAL_CHARS</entry>
       <entry>string</entry>
       <entry>A string containing all of the characters other than
       a-Z, 0-9, and underscore that can be used in an identifier name.</entry>
      </row>
      <row>
       <entry>SQL_CONFORMANCE</entry>
       <entry>string</entry>
       <entry>
        <para>The level of conformance to the ANSI/ISO SQL-92 specification
        offered by the database server:
        <variablelist>
         <varlistentry>
          <term>ENTRY</term>
          <listitem>
           <para>
            Entry-level SQL-92 compliance.
           </para>
          </listitem>
         </varlistentry>
         <varlistentry>
          <term>FIPS127</term>
          <listitem>
           <para>
            FIPS-127-2 transitional compliance.
           </para>
          </listitem>
         </varlistentry>
         <varlistentry>
          <term>FULL</term>
          <listitem>
           <para>
            Full level SQL-92 compliance.
           </para>
          </listitem>
         </varlistentry>
         <varlistentry>
          <term>INTERMEDIATE</term>
          <listitem>
           <para>
            Intermediate level SQL-92 compliance.
           </para>
          </listitem>
         </varlistentry>
        </variablelist>
        </para>
       </entry>
      </row>
     </tbody>
    </tgroup>
   </table>
  </para>

 </refsect1>
 <refsect1 role="parameters">
  &reftitle.parameters;
  <para>
   <variablelist>
    <varlistentry>
     <term><parameter>connection</parameter></term>
     <listitem>
      <para>
       Specifies an active DB2 client connection.
      </para>
     </listitem>
    </varlistentry>
   </variablelist>
  </para>
 </refsect1>
 <refsect1 role="returnvalues">
  &reftitle.returnvalues;
  <para>
   Returns an object on a successful call. Returns &false; on failure.
  </para>
 </refsect1>

 <!-- Use when ERRORS exist
 <refsect1 role="errors">
  &reftitle.errors;
  <para>
   When does this function throw E_* level errors, or exceptions?
  </para>
 </refsect1>
 -->


 <!-- Use when a CHANGELOG exists
 <refsect1 role="changelog">
  &reftitle.changelog;
  <para>
   <informaltable>
    <tgroup cols="2">
     <thead>
      <row>
       <entry>&Version;</entry>
       <entry>&Description;</entry>
      </row>
     </thead>
     <tbody>
      <row>
       <entry>Enter the PHP version of change here</entry>
       <entry>Description of change</entry>
      </row>
     </tbody>
    </tgroup>
   </informaltable>
  </para>
 </refsect1>
 -->


 <refsect1 role="examples">
  &reftitle.examples;
  <para>
   <example>
    <title>A <function>db2_server_info</function> example</title>
    <para>
     To retrieve information about the server, you must pass a valid
     database connection resource to <function>db2_server_info</function>.
    </para>
    <programlisting role="php"><![CDATA[<?php

$conn = db2_connect('sample', 'db2inst1', 'ibmdb2');

$server = db2_server_info( $conn );

if ($server) {
    echo "DBMS_NAME: ";                 var_dump( $server->DBMS_NAME );
    echo "DBMS_VER: ";                  var_dump( $server->DBMS_VER );
    echo "DB_CODEPAGE: ";               var_dump( $server->DB_CODEPAGE );
    echo "DB_NAME: ";                   var_dump( $server->DB_NAME );
    echo "INST_NAME: ";                 var_dump( $server->INST_NAME );
    echo "SPECIAL_CHARS: ";             var_dump( $server->SPECIAL_CHARS );
    echo "KEYWORDS: ";                  var_dump( sizeof($server->KEYWORDS) );
    echo "DFT_ISOLATION: ";             var_dump( $server->DFT_ISOLATION );
    echo "ISOLATION_OPTION: ";
    $il = '';
    foreach( $server->ISOLATION_OPTION as $opt )
    {
       $il .= $opt." ";
    }
    var_dump( $il );
    echo "SQL_CONFORMANCE: ";           var_dump( $server->SQL_CONFORMANCE );
    echo "PROCEDURES: ";                var_dump( $server->PROCEDURES );
    echo "IDENTIFIER_QUOTE_CHAR: ";     var_dump( $server->IDENTIFIER_QUOTE_CHAR );
    echo "LIKE_ESCAPE_CLAUSE: ";        var_dump( $server->LIKE_ESCAPE_CLAUSE );
    echo "MAX_COL_NAME_LEN: ";          var_dump( $server->MAX_COL_NAME_LEN );
    echo "MAX_ROW_SIZE: ";              var_dump( $server->MAX_ROW_SIZE );
    echo "MAX_IDENTIFIER_LEN: ";        var_dump( $server->MAX_IDENTIFIER_LEN );
    echo "MAX_INDEX_SIZE: ";            var_dump( $server->MAX_INDEX_SIZE );
    echo "MAX_PROC_NAME_LEN: ";         var_dump( $server->MAX_PROC_NAME_LEN );
    echo "MAX_SCHEMA_NAME_LEN: ";       var_dump( $server->MAX_SCHEMA_NAME_LEN );
    echo "MAX_STATEMENT_LEN: ";         var_dump( $server->MAX_STATEMENT_LEN );
    echo "MAX_TABLE_NAME_LEN: ";        var_dump( $server->MAX_TABLE_NAME_LEN );
    echo "NON_NULLABLE_COLUMNS: ";      var_dump( $server->NON_NULLABLE_COLUMNS );

    db2_close($conn);
}
?>]]></programlisting>
    &example.outputs;
    <screen><![CDATA[DBMS_NAME: string(9) "DB2/LINUX"
DBMS_VER: string(10) "08.02.0000"
DB_CODEPAGE: int(1208)
DB_NAME: string(6) "SAMPLE"
INST_NAME: string(8) "db2inst1"
SPECIAL_CHARS: string(2) "@#"
KEYWORDS: int(179)
DFT_ISOLATION: string(2) "CS"
ISOLATION_OPTION: string(12) "UR CS RS RR "
SQL_CONFORMANCE: string(7) "FIPS127"
PROCEDURES: bool(true)
IDENTIFIER_QUOTE_CHAR: string(1) """
LIKE_ESCAPE_CLAUSE: bool(true)
MAX_COL_NAME_LEN: int(30)
MAX_ROW_SIZE: int(32677)
MAX_IDENTIFIER_LEN: int(18)
MAX_INDEX_SIZE: int(1024)
MAX_PROC_NAME_LEN: int(128)
MAX_SCHEMA_NAME_LEN: int(30)
MAX_STATEMENT_LEN: int(2097152)
MAX_TABLE_NAME_LEN: int(128)
NON_NULLABLE_COLUMNS: bool(true)]]></screen>
   </example>
  </para>
 </refsect1>


 <refsect1 role="seealso">
  &reftitle.seealso;
  <para>
   <simplelist>
    <member><function>db2_client_info</function></member>
   </simplelist>
  </para>
 </refsect1>


</refentry>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->