Xml from java

Hola quiero conectarme a una base de datos Paradox y obtener una consulta para luego crear un archivo xml, lo que pasa que me lo crea pero no me lo escribe, creo que la consulta la hace correctamente pero no se que pasa que le sale este error:
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)
el codigo es este
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("<?xml version=\"1.0\" ?>");
int numColumnas = rs.getMetaData().getColumnCount();
String[] nombreColumnas = new String[numColumnas];
for (int i=0; i<numColumnas; i++){
nombreColumnas = rs.getMetaData().getColumnName(i);
}
while(rs.next()){
fw.write(System.getProperty("line.separator"));
fw.write("<registro>");
fw.write(System.getProperty("line.separator"));
for (int i=0; i<numColumnas; i++){
fw.write(" <" + nombreColumnas + ">" + rs.getString(i) + "</" + nombreColumnas + ">");
fw.write(System.getProperty("line.separator"));
}
fw.write("</registro>");
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;
}
}
Es un pequeño prototipo para luego pasarlo ala aplicación grande, muchas gracias por la ayuda

1 Respuesta

Respuesta
1
Me da la impresión de que tu problema de conexión ya lo ha respondido alguien antes :-), te paso en enlace. Creo que entre otras posibles cosas, te puede faltar especificar usuario y contraseña en la conexión
http://www.todoexpertos.com/categorias/tecnologia-e-internet/programacion/java/respuestas/1927422/de-conexiones-va-la-cosa
Hola, por lo que estuve mirando no es problema de la conexión probé hacer un código que me sacara las tablas alas que accede, y me saca esto, pero no consigo ver cual es el problema..
Error obteniendo el nombre de la columna 0
el nombre de la columna 1 es CÓDIGO
el nombre de la columna 2 es IDENT
el nombre de la columna 3 es CLAVE
el nombre de la columna 4 es PERMON
el nombre de la columna 5 es PERCON
el nombre de la columna 6 es PERHIS
el nombre de la columna 7 es PERCFN
el nombre de la columna 8 es PERSEG
el nombre de la columna 9 es NOMBRE
el nombre de la columna 10 es DIRECC
java.sql.SQLException: [Microsoft][Administrador de controladores ODBC] Índice de descriptor no válido
A mi me ha pasado alguna cosa similar cuando atacando a Oracle o Informix no estaba usando la versión del driver que se corespondía con la versión de la base de datos ...
No se si Paradox puede tener el mismo problema ... echa un vistazo a ver

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas