Acessar dbf via odbc

1. Acessar dbf via odbc

Erick Bonfim
erickbonfim

(usa Debian)

Enviado em 25/03/2013 - 11:27h

Caros, como vão?

Estou com duvida na configuração do driver ODBC para acessar arquivos DBF, sou novo no linux e estou precisando fazer essa configuração. Já instalei o apache2 e o php, ele já está funcionando na minha rede, só não sei o próximo passa para poder me conectar ao banco DBF, já procurei algum site explicando mas não tive sucesso. Desde já agradeço. Obrigado.

Obs: Estou utilizando o Debian.


  


2. Re: Acessar dbf via odbc

cr0n
_di0

(usa FreeBSD)

Enviado em 25/03/2013 - 14:08h

apt-get install php-db


3. Re: Acessar dbf via odbc

Erick Bonfim
erickbonfim

(usa Debian)

Enviado em 25/03/2013 - 14:27h

di0, esse pacote já esta instalado... consegui progredir eu acho, estou tentando executar a seguinte pagina:

<html>
<body>
<?php
$dsn = "DRIVER={Microsoft dBASE Driver (*.dbf)};datasource=/home/servidor/DBFs;";
$conn= odbc_connect($dsn,"","");
if(!$conn)
{
exit("conexao falhou: ".odbc_errormsg());
}

$sql = "select * from cl";
$rs = odbc_exec($conn, $sql);

echo "<table><tr>";
echo "<th>Nome</th></tr>";
while (odbc_fetch_row($rs))
{
echo "<tr><td>".odbc_result($rs, "EMP")."</td></tr>";
}
odbc_close($conn);
echo "</table>"
?>
</html>
</body>

mas quando executo aparece o seguinte erro:

[unixODBC][Driver Manager]Data source name not found, and no default driver specified.

Creio que falte configurar algum driver odbc. Fico no aguardo. Obrigado.



4. Re: Acessar dbf via odbc

cr0n
_di0

(usa FreeBSD)

Enviado em 25/03/2013 - 15:50h

Pode ser, veja se as variáveis ambientes ODBCINI e ODBCSYSINI estão apontando para o arquivo de configuração e patch respectivamente corretos, se seu arquivo de configuração odbc.ini estiver no diretório /usr/local/etc, a configuração deve ficar assim:


export ODBCINI=/usr/local/etc/odbc.ini
export ODBCSYSINI=/usr/local/etc





5. Re: Acessar dbf via odbc

Erick Bonfim
erickbonfim

(usa Debian)

Enviado em 25/03/2013 - 16:04h

di0, ai q está o problema cara, é nessa parte que eu estou totalmente perdido.

Não estou conseguindo configurar o meu arquivo odbc.ini, ele esta em branco e se encontra na pasta /etc/

outra coisa também que estou com duvida, é no qual dessas lib´s eu configuro nele para utilizar tabelas DBF. Na minha pasta /usr/lib/odbc/ tem os seguintes arquivos:

- libesoobS.so
- libmimerS.so
- libnn.so
- libodbcdrvcfg1S.so
- libodbcdrvcfg2S.so
- libodbcminiS.so
- libodbcmyS.so
- libodbcnnS.so
- libodbcpsqlS.so
- libodbctxtS.so
- liboplodbcS.so
- liboraodbcS.so
- libsapdbcS.so
- libtdsS.so

eu acho que preciso configurar o arquivo odbc.ini utilizando alguma dessas lib´s, mas também me parece que a lib para conectar com um banco DBF não é nenhuma dessas, eu estou perdido nessa etapa, não sei configurar o arqivo odbc.ini para utilizar banco DBF e qual lib utilizar. Desde já agradeço sua atenção. Fico no aguardo, enquanto isso estou tentando encontrar na internet algum caminho de como fazer isso.





6. Re: Acessar dbf via odbc

Erick Bonfim
erickbonfim

(usa Debian)

Enviado em 25/03/2013 - 16:53h

O que eu fiz de novo:






- Instalei o pacote: tdsodbc;

- Configurei o arquivo /etc/odbc.ini da seguinte forma:
[TESTE]
Description = Microsoft dBASE
Driver = dBASE
Database = /home/servidor/DBFs
Servername = tdsServer

- Configurei o arquivo /etc/odbcinst.ini da seguinte forma:
[dBASE]
Description = Microsoft dBASE Driver (*dbf)
Driver = /usr/lib/odbc/libtdsodbc.so
Setup =
FileUsage =

- Criei no final do arquivo /etc/freetds/freetds.conf a seguinte linha:
[TDS]
host = tdsServer
port =
tds version = 7.0

- Na minha pagina mudei a odbc_connect para:
$conn = odbc_connect("TESTE","","")

Fazendo isso o erro da pagina mudou para:
[unixODBC][FreeTDS][SQL Server]Unable to connect to data source

Acho que o caminho é esse, mas ainda não consegui resolver. Fico no aguardo. Obrigado.




7. Re: Acessar dbf via odbc

cr0n
_di0

(usa FreeBSD)

Enviado em 25/03/2013 - 17:07h

Roda via linha de comando?


8. Re: Acessar dbf via odbc

Erick Bonfim
erickbonfim

(usa Debian)

Enviado em 25/03/2013 - 17:10h

Vish, desculpe minha ignorância _di0, mas não entendi?


9. Re: Acessar dbf via odbc

cr0n
_di0

(usa FreeBSD)

Enviado em 25/03/2013 - 17:15h

Se tem um script que possa rodar via shell para testar a conexão. De todo modo, experimente especificar a porta no arquivo freetds.conf


10. Re: Acessar dbf via odbc

Erick Bonfim
erickbonfim

(usa Debian)

Enviado em 25/03/2013 - 17:32h

Não tenho script de teste, estou fazendo testes pela rede através do apache... _di0, você sabe me dizer se com o driver freetds eu consigo acessar um banco de dados DBF? Eu costumava usar o windows para fazer esse tipo de conexão, eu criava um DSN no windows colocando o caminho onde estão os arquivos DBF e funcionava perfeitamente... Esse tipo de configuração utilizando o linux eu nunca fiz, estou perdido mesmo, na internet eu só encontro sites ensinando a se conectar a um banco mysql e postgres... mas o driver de conexao e a string mudam, sinceramente não estou sabendo resolver esse problema no linux. Bom, coloquei a porta mas não resolveu, continuo na batalha!!!


11. Re: Acessar dbf via odbc

cr0n
_di0

(usa FreeBSD)

Enviado em 25/03/2013 - 17:36h

Você pode usar o client para testar:

isql -vv SEU_DSN user pass

Você setou as variáveis ambientes como citei anteriormente?


12. Re: Acessar dbf via odbc

cr0n
_di0

(usa FreeBSD)

Enviado em 25/03/2013 - 17:40h

Eu nunca usei PHP com MSSQL, mas por curiosidade devido a sua pergunta, li algumas coisas à respeito, é necessário realizar essas etapas, teste com o comando que passei o acesso, antes, export a variável ambiente. Tudo indica que está perto da solução.

Editando: Com Dbase, e é possível usar o freetds, novamente, teste o acesso via linha de comando.



01 02