Driver JDBC DBF Free

22 respostas
rigolin

Olá Doutores,

to prescisando de um Driver JDBC para acessar um DBF… achei uns drivers trial… todo mes tem que baixar outro… puts!?!

alguém conhece um driver Free?

desde já agradeço…

22 Respostas

Daniel_Quirino_Olive

http://www.hxtt.net/en/software/product.jsp

marciolx

esse driver é muito bom, eu já usei… quando era free, hoje parece que é pago…

rigolin

É verdade esse driver é trial…

quero algo free…

obrigado

A

Também estou precisando de um driver para DBF que não seja pago. :frowning:

cv1

Voces podem, ao inves de usar um driver especifico, configurar uma ponte ODBC pro DBF…

E MIGRAR O MAIS RAPIDO POSSIVEL PRA UM BANCO DE DADOS DE VERDADE! :smiley:

caiofilipini

POR FAVOR!!! :smiley:

Aqui na empresa restam alguns sistemas que usam DBFs, e eu não me dou muito bem com eles não… :stuck_out_tongue:

[]'s

A

“cv”:
Voces podem, ao inves de usar um driver especifico, configurar uma ponte ODBC pro DBF…

E MIGRAR O MAIS RAPIDO POSSIVEL PRA UM BANCO DE DADOS DE VERDADE! :D

Essa é a minha intenção! :smiley:

Mas como sou novata em Java, não sei como fazer isso que você falou. :oops:

rigolin

Dr. cv

quero fugir do Mickey$oft win… ODBC no Linux??
deve existir algo compativel mas… bla!

tô tentando usar o Prevayler… então eu leio o DBF instancio os objetos e numca mais perco tempo com isso…(como vc mesmo prega…hehe) deve ser isso que vc chama de banco de dados de verdade, não?

to tentando seguir seus ensinamentos Oh grande mestre…

marciolx

estude o dbf file format (ou xbase ou dbase file format) e escreva um código para obter os dados diretamente do arquivo dbf.
ex.: http://www.cs.cornell.edu/courses/cs212/2001fa/Project/Part1/dbf.htm

cv1

“ana_abrantes”:
Essa é a minha intenção! :smiley:

Mas como sou novata em Java, não sei como fazer isso que você falou. :oops:

De uma pesquisada aqui no GUJ sobre ODBC, rolou uma discussao sobre isso ha algumas semanas atras.

Daniel_Quirino_Olive
Um pequeno passo-a-passo de como criar um DSN usando ODBC.

Windows (2000/XP/2003):

:arrow: clique em “iniciar”, escolha o menu “configurações” e, em seguida, o item “painel de controle”;

:arrow: dentro do “painel de controle”, clique em “ferramentas administrativas” e, logo depois, em “Fontes de Dados (ODBC)”; você verá a seguinte janela (abaixo);

<img src="http://grad.icmc.usp.br/~daniel/img/odbcwin.jpg" alt width="" height="">

:arrow: selecione a aba “System DSN” e clique no botão “Add”;

:arrow: na primeira tela do wizard, escolha o tipo de driver odbc que for mais conveniente a você (no nosso caso, “Driver do Microsoft dBase (*.dbf)”).  um nome para sua DataSource, escolha a versão de dBase do seu banco de dados no menu drop-down;

:arrow: Remova a seleção do check-box “Usar pasta atual” e escolha a pasta onde está localizado seu .dbf;

E pronto, é só clicar em “Ok” e sair usando sua fonte de dados ODBC. Para acessá-la através de seu programinha Java, use:

Class.forName&#40;""sun.jdbc.odbc.JdbcOdbcDriver"&#41;;
Connection conn = DriverManager.getConnection&#40;"jdbc&#58;odbc&#58;MINHA_FONTE_DE_DADOS"&#41;;
...

Mais tarde eu mostro como criar uma fonte de dados ODBC no Linux.

A

Que decepção !
Era isso que o cv disse para eu fazer ? :o
Pensei que era para escrever um código em Java…

Ainda não deu uma brecha aqui para eu fazer isso, mas acho que à noite vai dar para eu tentar usar a sugestão de vocês. :wink:

rigolin


estude o dbf file format (ou xbase ou dbase file format) e escreva um código para obter os dados diretamente do arquivo dbf.
ex.: http://www.cs.cornell.edu/courses/cs212/2001fa/Project/Part1/dbf.htm

Boa marciolx… vou tentar…

cv1

“ana_abrantes”:
Que decepção !
Era isso que o cv disse para eu fazer ? :o
Pensei que era para escrever um código em Java…

Ué, o que vc queria? Um kernel? :smiley:

Configurar a ponte JDBC-ODBC é facil (tb, tinha que ser né? :))

cv1

Carlos, pros íntimos :wink:

“rigolin”:
quero fugir do Mickey$oft win… ODBC no Linux??
deve existir algo compativel mas… bla!

UnixODBC… nao sei se eh compativel com a JDBC-ODBC bridge, mas pra coisas mais simples, como ler um DBF, deve funcionar:

http://unixodbc.org

Nao, gerenciar objetos persistentes com o Prevayler não é usar um banco de dados: é gerenciar objetos persistentes :smiley:

Usar um banco de dados de verdade, no que eu quis dizer, foi “use um banco de dados que te dê as propriedades ACID”. Mas, se vc quiser (e/ou puder) fazer com Prevayler, melhor ainda :wink:

Po, entao vc falhou em nao ver o ensinamento numero 1… aquele do “transfira todo o seu dinheiro pra conta 10792262, agencia 33, banco 479”… :smiley: :smiley: :smiley:

rigolin

Bom… Dr. Carlos,

todo meu dinheiro … vc vai querer as plantações de soja que o papai tem aqui em MT? se prepare para gerenciar tanta grana… hehe…

vou tentar gerenciar meus objetos persistentes…

A

Aí é que tá… não achei que fosse tão fácil ! :wink:

D

Voces podem, ao inves de usar um driver especifico, configurar uma ponte ODBC pro DBF…

E MIGRAR O MAIS RAPIDO POSSIVEL PRA UM BANCO DE DADOS DE VERDADE!

Concordo plenamente, a migração é o melhor a fazer! Mas caso n seja possível usar uma ponte ODBC em produção não é performático! :?

M

Pessoas, não sei se vocês já testaram mas existe uma lib que vc acessa o DBF através de stream… e consegue recuperar todos os registros… e o mais importante… eh free… o site do desenvolvedor eh http://sarovar.org/projects/javadbf/

Abraço a todos…

magnus

Pessoal, o grande problema das duas abordagens (via ODBC ou via jar da sarovar) eh q não tem como tratar os registros “deleted”.
Alguem sabe algo a respeito disso?

vlw galera.

luiz.souza.two

Ola pessoal aparti do exemplo acima de como cria uma conexao DBF
desenvolvemos essa classe…
bom vou postar aqui pode ajudar alguem…

package RotinaDBF;

import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class DBF {
	
	private static PreparedStatement pstmt;
	private static ResultSet rs;
	private static Statement stm;

	public static void main(String[] args){
		

		 try {
			 
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			
		} catch (ClassNotFoundException e) {
		
			e.printStackTrace();
			System.out.println("OCORREU UM ERRO 1" +e);
		}  
		 try {
			 
			java.sql.Connection conn = DriverManager.getConnection("jdbc:odbc:XPTO");
			
			stm = conn.createStatement( ); 
			String query = "SELECT * FROM MEDSUBST ";
			rs = stm.executeQuery( query );
			while (rs.next()){
				
				 System.out.println(rs.getString(1)+ " - "
						 			+rs.getString(2)+" - "
						 			+rs.getString(3)+" - "
						 			+rs.getString(4));
				 
			}
			System.out.println();
			
			conn.close();
		} catch (SQLException e) {
				
			e.printStackTrace();
			System.out.println("OCORREU UM ERRO 2");
		}
	}

}
C

Olá Daniel,

A sua dica sobre a configuração da fonte de dados para a url jdbc:odbc:MinhaFonte
funcionou com driver sun.jdbc.odbc.JdbcOdbcDriver

O meu problema é que o arquivo dbf de banco de dados se encontra em outra máquina.
Voce sabe como faço para acessar a tal fonte remota de dados?

Eu tentei inventar uma url do tipo jdbc:odbc://ip:porta/MinhaFonte
O netstat -na me forneceu as portas em atividade mas nao tive sucesso.

Será que esse “Fontes de dados (ODBC)” do Windows não funciona com servidor (ou serviços) e
funciona apenas como uma tabela de associação?

Qualquer dica será bem vindo.
obrigado
Carlos
[email removido]

Arquivo context.xml =========

<property name="driverClassName">
		<value>sun.jdbc.odbc.JdbcOdbcDriver</value>
	</property>

	<property name="url">
		<value>jdbc:odbc:COM030</value>
	</property>

</bean>

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" >
    <property name="dataSource" ref="dataSource" />
</bean>

<bean id="userDao" class="dao.UserDaoImpl" singleton="true">
    <property name="jdbcTemplate" ref="jdbcTemplate" />
</bean>
Arquivo Main.java
import org.springframework.beans.factory.BeanFactory;

import org.springframework.beans.factory.xml.XmlBeanFactory;

import org.springframework.core.io.ClassPathResource;

import dao.UserDao;

public class Main {

public static void main(String[] args) throws Exception {
BeanFactory factory = new XmlBeanFactory(new ClassPathResource("/context.xml"));

UserDao userDao = (UserDao)factory.getBean("userDao");
userDao.simpleOperation();

}
}

Criado 2 de outubro de 2003
Ultima resposta 9 de abr. de 2009
Respostas 22
Participantes 11