<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [

<!-- Process this file with docbook-to-man to generate an nroff manual
     page: `docbook-to-man manpage.sgml > manpage.1'.  You may view
     the manual page with: `docbook-to-man manpage.sgml | nroff -man |
     less'.  A typical entry in a Makefile or Makefile.am is:

manpage.1: manpage.sgml
	docbook-to-man $< > $@

    
	The docbook-to-man binary is found in the docbook-to-man package.
	Please remember that if you create the nroff version in one of the
	debian/rules file targets (such as build), you will need to include
	docbook-to-man in your Build-Depends control field.

  -->

  <!-- Fill in your name for FIRSTNAME and SURNAME. -->
  <!ENTITY dhfirstname "<firstname>UWE</firstname>">
  <!ENTITY dhsurname   "<surname>STEINMANN</surname>">
  <!-- Please adjust the date whenever revising the manpage. -->
  <!ENTITY dhdate      "<date>August 29, 2005</date>">
  <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
       allowed: see man(7), man(1). -->
  <!ENTITY dhsection   "<manvolnum>3</manvolnum>">
  <!ENTITY dhemail     "<email>uwe@steinmann.cx</email>">
  <!ENTITY dhusername  "Uwe Steinmann">
  <!ENTITY dhucpackage "<refentrytitle>PX_GET_RECORD2</refentrytitle>">
  <!ENTITY funcname    "PX_get_record2">

  <!ENTITY debian      "<productname>Debian</productname>">
  <!ENTITY gnu         "<acronym>GNU</acronym>">
  <!ENTITY gpl         "&gnu; <acronym>GPL</acronym>">
]>

<refentry>
  <refentryinfo>
    <address>
      &dhemail;
    </address>
    <author>
      &dhfirstname;
      &dhsurname;
    </author>
    <copyright>
      <year>2003-2005</year>
      <holder>&dhusername;</holder>
    </copyright>
    &dhdate;
  </refentryinfo>
  <refmeta>
    &dhucpackage;

    &dhsection;
  </refmeta>
  <refnamediv>
    <refname>&funcname;</refname>

    <refpurpose>Returns record in Paradox file</refpurpose>
  </refnamediv>
  <refsynopsisdiv>
    <para>#include &lt;paradox.h&gt;</para>
		<para>int &funcname;(pxdoc_t *pxdoc, int recno, char *data, int *deleted, pxdatablockinfo_t *pxdbinfo)</para>
  </refsynopsisdiv>
  <refsect1>
    <title>DESCRIPTION</title>

    <para>This function is similar to PX_get_record(3) but takes two extra
		  parameters. If *deleted is set to 1 the function will consider any
			record in the database, even those which are deleted. If *pxdbinfo is
			not NULL, the function will return some information about the data block
			where the record has been read from. You will have to allocate memory
			for pxdbinfo before calling &funcname;.</para>
		<para>On return *deleted will be set to 1 if the requested record is
		  deleted or 0 if it is not deleted. The struct pxdatablockinfo_t has
			the following fields:</para>
		<variablelist>
		  <varlistentry>
			  <term>blockpos (long)</term>
			  <listitem>
				  <para>File positon where the block starts. The first six bytes
					  of the block contain the header, followed by the record data.
					</para>
				</listitem>
			</varlistentry>
		  <varlistentry>
			  <term>recordpos (long)</term>
			  <listitem>
				  <para>File position where the requested record starts.</para>
				</listitem>
			</varlistentry>
		  <varlistentry>
			  <term>size (int)</term>
			  <listitem>
				  <para>Size of the data block without the six bytes for the header.
					</para>
				</listitem>
			</varlistentry>
		  <varlistentry>
			  <term>recno (int)</term>
			  <listitem>
				  <para>Record number within the data block. The first record in the
					  block has number 0.</para>
				</listitem>
			</varlistentry>
		  <varlistentry>
			  <term>numrecords (int)</term>
			  <listitem>
				  <para>The number of records in this block.</para>
				</listitem>
			</varlistentry>
		  <varlistentry>
			  <term>number (int)</term>
			  <listitem>
				  <para>The number of the data block.</para>
				</listitem>
			</varlistentry>
		</variablelist>
		<para>This function may return records with invalid data, because records
		  are not explizitly marked as deleted, but rather the size of a valid data
			block is modified. A data block is a fixed size area in the file which
			holds a certain number of records. If for some
			reason a data block has newer been completely filled with records, the
			algorithmn anticipates deleted records in this data block, which are not
			there. This often happens with the last data block in a file, which is
			likely to not being fully filled with records.</para>
		<para>If you accessing several records, do it in ascending order, because
		  this is the most efficient way.</para>
		<note><para>This function is deprecated.
		  Use <function>PX_retrieve_record(3)</function> instead</para></note>

  </refsect1>
  <refsect1>
    <title>RETURN VALUE</title>
    <para>Returns 0 on success and -1 on failure.</para>
  </refsect1>
  <refsect1>
    <title>SEE ALSO</title>

    <para>PX_get_field(3), PX_get_record(3)</para>

  </refsect1>
  <refsect1>
    <title>AUTHOR</title>

    <para>This manual page was written by &dhusername; &dhemail;.</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:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->


