+4

Trabalhando com Banco de Dados DBASE

criado por Leonardo Caitano em 24/08/2003 11:43am
Antes de começarmos, gostaria de fazer umas observações:
Sinceramente, não recomendo a utilização do dbase como seu banco de dados na web, em vez disso use o conhecimento adquirido aqui para outros fins, como por exemplo, converter um banco de dados dbase para o mysql.

Atenção: caso você receba a mensagem "Fatal error: Call to undefined function: dbase_open()" logo nos primeiros exemplos abra seu arquivo php.ini e descomente a linha abaixo:

extension=php_dbase.dll

Abrindo o banco de dados

int dbase_open (string filename, int flags)

A função dbase_open() abre um banco de dados do dbase cujo nome é apontado por filename.
Os tipos de operações permitidas são definidas pelo valor do argumento flags. Os valores legais para flags são:

0 - somente leitura
1 - somente escrita
2 - leitura e escrita

A função retorna um identificador de arquivo dbase, ou seja, um dbase_identifier em caso de sucesso, ou FALSE caso falhar.

Segue abaixo um exemplo de sua utilização:

<?php
$db = dbase_open("clientes.dbf", 0);
if (!$db) {
    print "o banco de dados especificado não pode ser aberto";
}
?>

Fechando o banco de dados

bool dbase_close (int dbase_identifier)

A função dbase_close() fecha o banco de dados do dbase associado ao dbase_identifier.

Segue abaixo um exemplo de sua utilização:

<?php    
$db = dbase_open("clientes.dbf", 0);
if (!$db) {
    print "o banco de dados especificado não pode ser aberto";
} else {
     // caso clientes.dbf esteja aberto ele fecha o mesmo
    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 (~4 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 (~6 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 (~11 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 (~11 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 (~11 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 (~12 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 (~13 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 (~13 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 (~13 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 (~13 anos atrás)

Novo Comentário:

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