Files
2025-03-16 12:57:15 -03:00

163 lines
5.4 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: a0ae28d3bc85f927c22649ebd9a590b921534b7d Maintainer: leonardolara Status: ready --><!-- CREDITS: saviorenato -->
<book xml:id="book.dbase" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<?phpdoc extension-membership="pecl" ?>
<title>dBase</title>
<!-- {{{ preface -->
<preface xml:id="intro.dbase">
&reftitle.intro;
<note>
<para>
&pecl.moved-ver;5.3.0.
</para>
</note>
<para>
Essas funções permitem acessar registros armazenados em bancos de dados no formato
dBase (dbf).
</para>
<warning>
<para>
Não é recomendado usar arquivos dBase como banco de dados
de produção. Use o <link xlink:href="&url.sqlite;">SQLite</link> ou escolha qualquer servidor SQL real; <link
xlink:href="&url.mysql;">MySQL</link> ou <link xlink:href="&url.pgsql;">Postgres</link>
são escolhas comuns com o PHP. O suporte ao dBase está aqui para permitir
importação e exportação de dados de e para seu banco de dados da web, porque o
formato de arquivo é comumente entendido por planilhas e organizadores
do Windows.
</para>
</warning>
<caution>
<para>
A partir do dBase 7.0.0, os bancos de dados são bloqueados automaticamente via
<function>flock</function>. Não havia suporte para bloqueio anteriormente,
portanto, dois processos simultâneos de servidor web modificando o mesmo arquivo dBase
provavelmente teriam arruinado um banco de dados. Isso pode acontecer mesmo com o dBase
7.0.0+ em sistemas que implementam os bloqueios no nível do processo com
SAPIs multithread.
</para>
</caution>
<para>
Os arquivos dBase são arquivos sequenciais simples de registros de comprimento fixo.
Os registros são anexados ao final do arquivo e os registros excluídos são
mantidos até a chamada a <function>dbase_pack</function>.
</para>
<para>
Somente arquivos dbf de nível 3 (dBASE III+) a 5 (dBASE V) são suportados.
Os tipos de campos dBase disponíveis são:
<table>
<title>Tipos de campos disponíveis</title>
<tgroup cols="3">
<thead>
<row>
<entry>Campo</entry>
<entry>Tipo dBase</entry>
<entry>Formato</entry>
<entry>Informações adicionais</entry>
</row>
</thead>
<tbody>
<row>
<entry><literal>M</literal></entry>
<entry>Memo</entry>
<entry>n/a</entry>
<entry>Este tipo não é suportado pelo PHP, tal campo será ignorado</entry>
</row>
<row>
<entry><literal>D</literal></entry>
<entry>Date</entry>
<entry><literal>YYYYMMDD</literal></entry>
<entry>O comprimento do campo é limitado a 8</entry>
</row>
<row>
<entry><literal>T</literal></entry>
<entry>DateTime</entry>
<entry><literal>YYYYMMDDhhmmss.uuu</literal></entry>
<entry>(FoxPro) Nenhuma verificação de validade é feita. Disponível a partir do dBase 7.0.0.</entry>
</row>
<row>
<entry><literal>N</literal></entry>
<entry>Number</entry>
<entry>Um número</entry>
<entry>
Deve-se declarar um comprimento e uma precisão (o número de dígitos
após o separador de decimais).
</entry>
</row>
<row>
<entry><literal>F</literal></entry>
<entry>Float</entry>
<entry>Um número float</entry>
<entry>Igual a <literal>N</literal>.</entry>
</row>
<row>
<entry><literal>C</literal></entry>
<entry>String</entry>
<entry>Uma string</entry>
<entry>Deve-se declarar um comprimento. Ao recuperar dados, a string
será preenchida à direita com espaços para caber no comprimento declarado. Strings
muito longas serão truncadas silenciosamente ao armazenar dados.</entry>
</row>
<row>
<entry><literal>L</literal></entry>
<entry>Boolean</entry>
<entry>
<literal>T</literal> ou <literal>Y</literal> para &true;,
<literal>F</literal> ou <literal>N</literal> para &false;,
<literal>?</literal> para não inicializado.
</entry>
<entry>
A partir do dBase 7.0.0, retornado como um <type>bool</type> (&true; ou &false;),
ou &null; para campos não inicializados.
Anteriormente, retornado como <type>int</type> (<literal>1</literal> ou <literal>0</literal>).
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
<note>
<para>
A partir do dBase 7.0.0, campos anuláveis são suportados para bancos de dados
<constant>DBASE_TYPE_FOXPRO</constant>. Se um campo for anulável,
passar &null; definirá o respectivo sinalizador e, na recuperação posterior,
o valor do campo será &null;.
</para>
</note>
<note>
<para>
Não há suporte para índices ou campos memo.
</para>
</note>
</preface>
<!-- }}} -->
&reference.dbase.setup;
&reference.dbase.constants;
&reference.dbase.reference;
</book>
<!-- 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
-->