Цитата(AntonSaburov @ 13.8.2007, 14:22 ) | | Если сам накопаешь |
Мои познания в английском не велики, но вродь то, что надо находится https://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp?topic=/com.ibm.db2.luw.apdv.java.doc/doc/t0052613.html. Попытался адаптировать под себя, натыкаюсь на ошибку:
| Цитата | 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; }
|
|