Result set y el dichoso xml

Hola buenas tengo este código para hacer una consulta a una base de datos y coger la consulta y pasarla a un archivo xml, el hecho es que me lo crea pero no me lo escribe, aver si tu sabes el motivo por que ando desesperada, la conexión funciona que ya lo comprobé, el error que me da es este
Compile:
run:
java.sql.SQLException: [Microsoft][Administrador de controladores ODBC] Índice de descriptor no válido
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
at sun.jdbc.odbc.JdbcOdbc.SQLColAttributesString(JdbcOdbc.java:2668)
at sun.jdbc.odbc.JdbcOdbcResultSetMetaData.getColAttributeString(JdbcOdbcResultSetMetaData.java:793)
at sun.jdbc.odbc.JdbcOdbcResultSetMetaData.getColumnName(JdbcOdbcResultSetMetaData.java:355)
import java.sql.Connection;
import java.sql.Statement;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.io.*;
class JDBCapp {
static Connection con;
public static void main (String args[]) {
ResultSet rs = null;
Statement stmt = null;
String sql, nombre;
try {
// conexion base de datos
con = AccessCon.getConnection();
sql = "select * from HISTCOMM";
stmt = con.createStatement();
rs = stmt.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
int colCount = rsmd.getColumnCount();
java.io.FileWriter fw= new java.io.FileWriter("c:/consulton.xml");
fw.write("
<!--l version=\"1.0\"-->");
int numColumnas = rs.getMetaData().getColumnCount();
String[] nombreColumnas = new String[numColumnas];
for (int i=0; inombreColumnas = rs.getMetaData().getColumnName(i);
}
while(rs.next()){
fw.write(System.getProperty("line.separator"));
fw.write("");
fw.write(System.getProperty("line.separator"));
for (int i=0; ifw.write(" <" + nombreColumnas + ">" + rs.getString(i) + "+ ">");
fw.write(System.getProperty("line.separator"));
}
fw.write("");
fw.close();
}
}
catch (Exception e) {
e.printStackTrace();
}
finally {
try {
if (con != null) con.close();
if (stmt != null) stmt.close();
if (rs != null) rs.close();
}
catch (Exception e) {
}
}
}
}
class AccessCon {
public static Connection getConnection() throws Exception {
Driver d = (Driver)Class.forName
("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
Connection c = DriverManager.getConnection
("jdbc:odbc:datos");
return c;
}
}

1 respuesta

Respuesta
1
El error es del conector, por lo que puede que aunque la conexión sea válida, lo que este mal es la query y no esta recuperando datos de las tablas, por lo que da ese error y no escribe nada. Prueba a poner una traza justo al recoger el resultado de la query y mira a ver si falla y si recoge los datos como tu quieres.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas