<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="function.mssql-fetch-field" xmlns="http://docbook.org/ns/docbook">
 <refnamediv>
  <refname>mssql_fetch_field</refname>
  <refpurpose>Get field information</refpurpose>
 </refnamediv>
 
 <refsect1 role="description">
  &reftitle.description;
  <methodsynopsis>
   <type>object</type><methodname>mssql_fetch_field</methodname>
   <methodparam><type>resource</type><parameter>result</parameter></methodparam>
   <methodparam choice="opt"><type>int</type><parameter>field_offset</parameter><initializer>-1</initializer></methodparam>
  </methodsynopsis>
  <para>
   <function>mssql_fetch_field</function> can be used in order to
   obtain information about fields in a certain query result. 
  </para>
 </refsect1>

 <refsect1 role="parameters">
  &reftitle.parameters;
  <para>
   <variablelist>
    <varlistentry>
     <term><parameter>result</parameter></term>
     <listitem>
      <para>
       The result resource that is being evaluated. This result comes from a
       call to <function>mssql_query</function>.
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>field_offset</parameter></term>
     <listitem>
      <para>
       The numerical field offset. If the field offset is not specified, the
       next field that was not yet retrieved by this function is retrieved. The
       <parameter>field_offset</parameter> starts at 0.
      </para>
     </listitem>
    </varlistentry>
   </variablelist>
  </para>
 </refsect1>

 <refsect1 role="returnvalues">
  &reftitle.returnvalues;
  <para>
   Returns an object containing field information.
  </para>
  <para>
   The properties of the object are:
  </para>
  <itemizedlist>
   <listitem>
    <simpara>
     name - column name.  if the column is a result of a function,
     this property is set to computed#N, where #N is a serial
     number.
    </simpara>
   </listitem>
   <listitem>
    <simpara>
     column_source - the table from which the column was taken
    </simpara>
   </listitem>
   <listitem>
    <simpara>
     max_length - maximum length of the column
    </simpara>
   </listitem>
   <listitem>
    <simpara>
     numeric - 1 if the column is numeric
    </simpara>
   </listitem>
   <listitem>
    <simpara>
     type - the column type.
    </simpara>
   </listitem>
  </itemizedlist>
 </refsect1>

 <refsect1 role="examples">
  &reftitle.examples;
  <para>
   <example>
    <title><function>mssql_fetch_field</function> example</title>
    <programlisting role="php">
<![CDATA[
<?php
// Connect to MSSQL and select the database
mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Send a select query to MSSQL
$query = mssql_query('SELECT * FROM [php].[dbo].[persons]');

// Construct table
echo '<h3>Table structure for \'persons\'</h3>';
echo '<table border="1">';

// Table header
echo '<thead>';
echo '<tr>';
echo '<td>Field name</td>';
echo '<td>Data type</td>';
echo '<td>Max length</td>';
echo '</tr>';
echo '</thead>';

// Dump all fields
echo '<tbody>';

for ($i = 0; $i < mssql_num_fields($query); ++$i) {
    // Fetch the field information
    $field = mssql_fetch_field($query, $i);

    // Print the row
    echo '<tr>';
    echo '<td>' . $field->name . '</td>';
    echo '<td>' . strtoupper($field->type) . '</td>';
    echo '<td>' . $field->max_length . '</td>';
    echo '</tr>';
}

echo '</tbody>';
echo '</table>';

// Free the query result
mssql_free_result($query);
?>
]]>
    </programlisting>
   </example>
  </para>
 </refsect1>

 <refsect1 role="seealso">
  &reftitle.seealso;
  <para>
   <simplelist>
    <member><function>mssql_field_seek</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
-->