Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Java+DBF 
V
    Опции темы
Abeke
Дата 11.8.2006, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 4.8.2006

Репутация: нет
Всего: нет



     Как можно получить доступ к чтению DBF-файлов . Нужно ли что-то дописывать в CLASSPATH?
Где можно взять драйвер для этого? И если не трудно,    smile     какой-нибудь небольшой примерчик чтения из DBF-файла.  
   Спасибо.
PM   Вверх
AntonSaburov
Дата 11.8.2006, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



Так на крайний случай можно использавоть ODBC драйвер. Прмер в нашем FAQ - http://vingrad.ru/JAVA-JAV-000098

Или посмотреть тут - http://forum.java.sun.com/thread.jspa?threadID=679848
Хотя там платно практически все.
PM MAIL WWW ICQ   Вверх
Bozo
Дата 11.8.2006, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 5.4.2006

Репутация: нет
Всего: нет



Цитата(AntonSaburov @ 11.8.2006,  18:00)
Так на крайний случай можно использавоть ODBC драйвер. Прмер в нашем FAQ - http://vingrad.ru/JAVA-JAV-000098

Зачем париться?

http://dbmt.sourceforge.net/xmlformat.html
PM   Вверх
tux
Дата 12.8.2006, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 31
Всего: 132



Бесплатных JDBC-драйверов для DBF похоже нет, по крайней мере я в свое время не нашел ничего. Есть несколько проектов для чтения из DBF и записи, работающих по похожему принципу, но не JDBC. Все простые и несложно разобраться. Вот ссылки на них:
  • JDBF. Махонькая библиотека, всего 4 класса. Простая как палка. Документация - только очень краткий javadoc, хотя вообще для нее больше и не надо. Но у меня не со всеми dbf-файлами смогла справиться
  • JavaDBF. Библиотека немногим побольше, проблема та же - не со всеми файлами смогла справится, хотя результаты и получше. Документация более развернутая
  • опять JavaDBF. Написана по большей части на основе предыдущего. Документации нет, javadoc - на португальском. smile Зато смогла у меня прочитать все, что ни подсовывал.


Это сообщение отредактировал(а) tux - 12.8.2006, 10:54
PM MAIL Skype GTalk Jabber YIM   Вверх
Abeke
Дата 14.8.2006, 06:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 4.8.2006

Репутация: нет
Всего: нет



    Большое спасибо! Обязательно попробую.
PM   Вверх
Abeke
Дата 14.8.2006, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 4.8.2006

Репутация: нет
Всего: нет



Попробовал сделать как здесь описано http://vingrad.ru/JAVA-JAV-000098 ,  но при компиляции выдаёт :

JavX1.java:32: unreported exception java.lang.ClassNotFoundException; must be ca
ught or declared to be thrown
                    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

Код такой:
Код


import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import java.net.URL;
import java.io.*; 
import java.util.Date; 
import sun.jdbc.odbc.*; 

public class JavX1 extends Applet {
    private Button fButton;
    private List  fileCombo ;
    private static Label fLabelForTextField;
    private Checkbox fCheckbox;
    private Label fLabelForChoice;
    private Panel theNORTHPanel;
    private Panel theCenterPanel;
    private Panel theSouthPanel;
    private String[] columns1;
    public Choice theChoice ;
    public static Connection conn ;
    public static int Kol ;
    public static void main(String [] args ) throws SQLException {
    
       { 
             try{
                    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                    String url = "jdbc:odbc:Driver={Microsoft dBase Driver (*.dbf)};DBQ=C:/JavX1D/12";
                    Connection con = DriverManager.getConnection(url);
                    checkForWarning (con .getWarnings ()); 
             }

             catch( SQLException ex ) {
                       ex.printStackTrace();

             }

         JavX1ApplicationFrame theApplication = new JavX1ApplicationFrame(
         "Vend-------Таблицы!");
         theApplication.setSize(600, 450);
         theApplication.show();

       };
    }
    
    public void init()  {
        setLayout(new BorderLayout());
        setBackground(java.awt.Color.white);
        theNORTHPanel=new Panel();
        theCenterPanel=new Panel();
        theSouthPanel=new Panel();
        fileCombo = new List(4);
   
       theSouthPanel.add(fileCombo );
       
       add(theSouthPanel, BorderLayout.SOUTH); 
        
        
        theChoice = new Choice();
        theNORTHPanel.add(theChoice);
        fLabelForTextField = new Label();
       add(theNORTHPanel, BorderLayout.NORTH); 
       
        add(fLabelForTextField, BorderLayout.CENTER);


        fButton = new Button("Соединение");
        fButton.setBackground(java.awt.Color.green);
        theCenterPanel.add(fButton);
        add(theCenterPanel, BorderLayout.CENTER); 

        fButton.addActionListener(new ActionListener() {
             public void actionPerformed(ActionEvent e)  {
 
             }
        }); 

    }
     private static boolean checkForWarning (SQLWarning warn) 
     throws SQLException {
     boolean rc = false;

         if (warn != null) {
             System.out.println ("\n *** Warning ***\n");
             rc = true;
             while (warn != null) {
                  warn = warn.getNextWarning ();
              }
         }
         return rc;
     }

}
      class JavX1ApplicationFrame extends Frame {
        private JavX1 fApplet;
        public JavX1ApplicationFrame(String name) {
          super(name);
          addWindowListener(new JavX1WindowAdapter());
          fApplet = new JavX1();
          fApplet.init();
          fApplet.start();
          add(fApplet);
        }

        class JavX1WindowAdapter extends WindowAdapter {
          public void windowClosing(WindowEvent e) {
            fApplet.stop();
            fApplet.destroy();
            System.exit(0);
          }
        }
      }




Может быть сначала надо драйвер загрузить отсюда http://www.svcon.com/jdbf/index.html, прописать в CLASSPATH путь к JAR-файлу?
PM   Вверх
LSD
Дата 14.8.2006, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Вместо:
Код
catch(SQLException ex)
{
  ex.printStackTrace();
}

поставь
Код
catch(Exception ex)
{
  ex.printStackTrace();
}




--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Abeke
Дата 14.8.2006, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 4.8.2006

Репутация: нет
Всего: нет



     Благодарствую ! smile  Исправил получилось .
  Но вот если я например хочу узнать про характеристики таблицы (число колонок, число полей, записей, тип колонок), то есть ли способ узнать об этом кроме такого:
ResultSet rs = st.executeQuery(“SELECT * FROM MYTABLE”);  ?
Можно ли воспользоваться методом getMetaData()
  Ну то есть conn.getMetaData().




PM   Вверх
LSD
Дата 14.8.2006, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(Abeke @  14.8.2006,  13:06 Найти цитируемый пост)
Можно ли воспользоваться методом getMetaData()  Ну то есть conn.getMetaData().

Можешь попробовать, но не знаю поддерживает ли такую функцию драйвер DBF и мост JDBC-ODBC.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Abeke
Дата 14.8.2006, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 4.8.2006

Репутация: нет
Всего: нет



     Прошу извинения , эти DBF-файлы не имеют отношения к DBASE ,  они оракловские оказывается.
Вот здесь описание траблы:  вот здесь .
   А как к этим DBF-ам получить доступ и работать с ними через JAVA?
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0568 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.