+4

Trabalhando com Banco de Dados DBASE

criado por Leonardo Caitano em 24/08/2003 11:43am
Adicionando registros ao banco de dados

bool dbase_add_record (int dbase_identifier, array record)

A função dbase_add_record() adiciona um registro ao banco de dados dbase. Retorna TRUE em caso de sucesso e FALSE caso contrário.

Segue abaixo um exemplo comentado de sua utilização:

<?php
// iremos adicionar um registro ao banco de dados clientes.dbf criado anteriormente.
$db = dbase_open('clientes.dbf', '2');

// reparem que a data está no formato YYYYMMDD e para o campo lógico foi passado
// um caracter, os caracteres válidos para este campo são T (true) e F (false).
$registro = array("20030822", "Fulano de Tal", 20, "fulanodetal@email.com.br", 'T');
if (!dbase_add_record($db, $registro)) {
    print 'Não foi possível inserir registro no banco de dados';
}
dbase_close($db);
?>

Deletando registros do banco de dados

    
bool dbase_delete_record (int dbase_identifier, int record)
bool dbase_pack (int dbase_identifier)

A função dbase_delete_record() marca o registro a ser deletado enquanto a função dbase_pack() exclui permanentemente os registros marcados.

Segue abaixo um exemplo de sua utilização:

<?php
$db = dbase_open('clientes.dbf', '2');
// marca o primeiro registro
dbase_delete_record($db, 1);
// deleta todos os registros marcados
dbase_pack($db);
dbase_close($db);
?>

Substituindo um registro no banco de dados

bool dbase_replace_record (int dbase_identifier, array record, int dbase_record_number)

A função dbase_replace_record() substitui um registro no banco de dados, e geralmente é usada para alterar dados em um registro. O argumento record_number é o número do registro a ser alterado e o argumento record deve ser um vetor com os dados do registro.

Segue abaixo um exemplo de sua utilização:

<?php
$db = dbase_open('clientes.dbf', '2');

// no registro abaixo alterei apenas o campo nome e e-mail do registro
// adiconado anteriormente, mas você pode alterar todos se quiser
$registro = array("20030822", "Ciclano", 20, "ciclano@email.com.br", 'T');

if (!dbase_replace_record($db, $registro, 1)) {
    print 'Não foi possível alterar registro no banco de dados';
}
dbase_close($db);
?>

Comentários:

Mostrando 1 - 10 de 22 comentários
Prezados colegas,

Preciso criar uma rotina que lê registros de um arquivo DBF com poucos registros e os mostrar na tela. Alguém poderia me informar como fazer para habilitar meu php para suportar o dbase_create.

Abraços a todos
16/07/2012 3:42pm (~10 anos atrás)

Rapáz, sei que faz um tempinho que acessaram o arquivo, mas para não abrir outro tópico estou escrevendo nesse mesmo.
O problema é que ainda estou recebendo a mensagem de erro quando tento manipular o arquivo .dbf

Fatal error: Call to undefined function dbase_open() in /var/www/site/arquivo.php on line 10

Já fiz a instalação do módulo php-db, mas mesmo assim não identifiquei no php.ini a extension=php-dbase.so (uso linux).
Coloquei a extension na marra e também não funcionou...

Continuo com o problema, alguém tem outra solução?
Grato.
16/09/2010 11:33am (~11 anos atrás)

Existe alguma solução para o caso de acesso concorrente à modificação de registros?

Como pode ser feito um controle para não danificar o banco de dados, ou seja, não permitir modificações concorrentes?

20/12/2005 4:57am (~16 anos atrás)

Walter disse:
Olá, Leonardo, como vai, sou novo na lista e acompanhei o seu artigo e não rodou, abilitei a dll no php.ini e nada, isso offline, onde preciso que rode a aplicação. Uso o easyPHP como servidor interno, no Windows. Um pouco da aplicação, preciso resgatar dados num .DBF de uma outra aplicação pelo php, pelo seu artigo vi que consiguirei, só falta mesmo rodar. o erro que dá é:

Fatal error: Call to undefined function: dbase_open() in c:\arquivos de programas\easyphp1-8\www\teste dbf\index.php on line 2

Se puder ajudar, agradeço

Abraço
10/11/2005 11:19am (~16 anos atrás)

quero saber como eu faco para colocar um registro em ordem alfabetica .. no caso quando esta saindo como resultado de uma busca..
30/10/2005 11:09am (~16 anos atrás)

S@lve,

Alguém poderia me informar como fazer, para habilitar meu php para suportar o dbase_create.

Detalhe: uso a versão 4.0.3 instalado via pacote RPM, e eu não consigo usar a opção ./configure --enable-dbase.

Alguém ja passou por esse problema.

Grato,

Rodrigo
16/08/2004 5:32pm (~18 anos atrás)

Muito bom o artigo, é claro que para utilizar o dbase como banco de dados web não é bom, mas para o meu caso que só preciso ler alguns (poucos) registros e mostrar na tela, funcionou muito bem.
23/11/2003 7:38am (~18 anos atrás)

Caro, tem como criar uma consulta sql? ou é necessário percorrer todo o banco para extrair uma informação
08/11/2003 2:53pm (~18 anos atrás)

É normal essa lentidão, o clipper tem suporte nativo a dbase, ja o php não.
E como eu descreví no artigo, não aconselho a usar a base de dados dbase na web, em vez disso converta seu arquivo dbase em instruções sql com meu scritp que disponibilizei aqui no phpbrasil, convert_dbase_sql .
Boa sorte.
06/09/2003 12:36pm (~19 anos atrás)

Pedro César disse:
Vi suas dicas para acessar o dbase, mas em um banco de dados com cerca de 8 mil registros demora um pouco para aparecer na tela o select (select *), o que nao aontece no clipper (que na mesma situacao e bem rapido) ambos estao locais. E normal? Para acessar a base dbase o php e assim mesmo, tao mais lento que o clipper? ou fiz alguma coisa errada? Se quiser posso mandar o codigo.

Obrigado desde ja
06/09/2003 7:11am (~19 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)