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;
}
}
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;
}
}
Respuesta de jruben
1