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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DBF deleted rows, Прочитать удаленные записи 
:(
    Опции темы
agR
Дата 13.8.2007, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 140
Регистрация: 19.7.2006
Где: Киев

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



Есть файл DBF.
Читаю записи через jdbc:odbc:Driver={Microsoft dBase Driver (*.dbf)}, но игнорятся записи, помеченные как удаленные.
Как можно прочитать и их тоже? Может есть параметр какой-то?
PM MAIL ICQ   Вверх
AntonSaburov
Дата 13.8.2007, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


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

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



Попробуй настроить в драйвере ODBC "Show Deleted Rows" (есть там такой флажок)
PM MAIL WWW ICQ   Вверх
agR
Дата 13.8.2007, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 140
Регистрация: 19.7.2006
Где: Киев

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



Цитата(AntonSaburov @  13.8.2007,  13:59 Найти цитируемый пост)
Попробуй настроить в драйвере ODBC "Show Deleted Rows" (есть там такой флажок) 

Пробовал, но не пошло... я ж думаю комп перезагружать не надо было? smile
смотрел еще в документации, но до конца не понял.... есть метод 
Цитата

boolean ownDeletesAreVisible(int type) throws SQLException

но что он и как делает... проблемы перевода так сказать...

Это сообщение отредактировал(а) agR - 13.8.2007, 14:10
PM MAIL ICQ   Вверх
AntonSaburov
Дата 13.8.2007, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


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

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



Цитата(agR @  13.8.2007,  14:09 Найти цитируемый пост)
Пробовал, но не пошло... 

Жаль. Пока мыслей нет - если что встречу - напишу. Если сам накопаешь - будем признательны. Очень.

Цитата(agR @  13.8.2007,  14:09 Найти цитируемый пост)
ownDeletesAreVisible

Я думаю, это вряд ли поможет - во-первых это не обязательно должно быть реализовано. Во-вторых - это информация, а не установка. Так что тут вряд ли что выйдет.
PM MAIL WWW ICQ   Вверх
agR
Дата 13.8.2007, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 140
Регистрация: 19.7.2006
Где: Киев

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



Цитата(AntonSaburov @  13.8.2007,  14:22 Найти цитируемый пост)
Если сам накопаешь

Мои познания в английском не велики, но вродь то, что надо находится тут.
Попытался адаптировать под себя, натыкаюсь на ошибку:
Цитата

java.lang.ArrayIndexOutOfBoundsException: -1
    at sun.jdbc.odbc.JdbcOdbcResultSet.rowDeleted(JdbcOdbcResultSet.java:3089)
    at DBFdeCoder.ReadOtv.<init>(ReadOtv.java:30)
    at DBFdeCoder.WriteDBF.<init>(WriteDBF.java:172)
    at DBFdeCoder.DBFdeCoderFrame$DecoderAction.actionPerformed(DBFdeCoderFrame.java:277)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
    at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:273)
    at java.awt.Component.processMouseEvent(Component.java:6038)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
    at java.awt.Component.processEvent(Component.java:5803)
    at java.awt.Container.processEvent(Container.java:2058)
    at java.awt.Component.dispatchEventImpl(Component.java:4410)
    at java.awt.Container.dispatchEventImpl(Container.java:2116)
    at java.awt.Component.dispatchEvent(Component.java:4240)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
    at java.awt.Container.dispatchEventImpl(Container.java:2102)
    at java.awt.Window.dispatchEventImpl(Window.java:2429)
    at java.awt.Component.dispatchEvent(Component.java:4240)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

Вот тестовый код (почти не изменял):
Код

package DBFdeCoder;

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;



public class ReadOtv {
    public ReadOtv(String openPath) throws Exception{
        Connection conn = createConnection(openPath);
        
    
        Statement st = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
        ResultSet rs = st.executeQuery("SELECT * FROM matotv.dbf");
        DatabaseMetaData meta = conn.getMetaData();
        boolean dbSeesDeletes = 
              meta.deletesAreDetected(ResultSet.TYPE_SCROLL_SENSITIVE);
        System.out.println(dbSeesDeletes);                                           
            rs.beforeFirst();                         
            while (rs.next()) {                 
             if (dbSeesDeletes) {
            
             if (!(rs.rowDeleted()))              
               {
                 System.out.println(rs.getRow());
                 s = rs.getString(1);             
                 System.out.println("Employee number = " + s);
                                                    
               }
              }
            }
        
        i = 0;
        while (rs.next()) {
            i++;
        }
        
        matOtv = new String[i];
        i=1;
        
        rs.beforeFirst();
        while(rs.next()) {
            matOtv[i-1] = rs.getString(1);
            System.out.print(i+ "   ");
            System.out.println(matOtv[i-1]);
            i++;
        }
        System.out.println(i-1);
        conn.close();
        
    }
    
    public Connection createConnection(String openPath) throws Exception {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        //Properties connInfo = new Properties();
        //connInfo.put("charSet","cp1251");
        String url = "jdbc:odbc:Driver={Microsoft dBase Driver (*.dbf)};DBQ="+openPath;
        Connection con = DriverManager.getConnection(url/*,connInfo*/);
        return con;
    }
    private int i;
    private String[] matOtv;
    private String s;
    
}

 smile 

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

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

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


 




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


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

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