Claves Primarias en Paradox
Hola, estoy desarrollando una aplicación en java para conectarme a una base de datos paradox, el problema que tengo, es que me conecto correctamente, pero hay una serie de tablas que no tienen clave primaria, por lo tanto cuando quiero conectarme sale este error..
java.sql.SQLException: [Microsoft][Controlador ODBC Paradox] La operación no es compatible con una tabla Paradox sin clave principal.
Os dejo mi codigo, por si a alguien le interesa, funciona con tablas con claves primarias, sino no ahy tu tia, aver si alguien me puede hechar un cable
public class CBaseDeDatos
{
private java.sql.Connection conexión;
private java.sql.Statement sentenciaSQL;
private java.sql.ResultSet cdr; // conjunto de resultados
public CBaseDeDatos(String controlador, String URL_bd,
String usuario, String contraseña)
throws ClassNotFoundException, java.sql.SQLException,
InstantiationException, IllegalAccessException
{
// Cargar el controlador JDBC
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newI nstance();
// Conectar con la fuente de datos
conectar(URL_bd, usuario, contraseña);
}
private void conectar(String URL_bd, String usuario,
String contraseña) throws java.sql.SQLException
{
// Conectar con la BD
conexión = java.sql.DriverManager.getConnection(
"jdbc:odbc:tarragona", usuario, contraseña);
// Crear una sentencia SQL
sentenciaSQL = conexión.createStatement(
java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,
java.sql.ResultSet.CONCUR_UPDATABLE);
System.out.println("Conexión realizada con Exito.\n");
}
public void cerrarConexion() throws java.sql.SQLException
{
if (cdr != null) cdr.close();
if (sentenciaSQL != null) sentenciaSQL.close();
if (conexión != null) conexión.close();
}
public java.sql.ResultSet obtenerTabla(String tabla)
throws java.sql.SQLException
{
cdr = sentenciaSQL.executeQuery("SELECT * FROM " + tabla);
return cdr;
}
}
Probé a cambiar java.sql.ResultSet.CONCUR_UPDATABLE); por Read Only pero nada y también a quitarle los parámetros pero nada, haber si me podéis echar una mano un slaudo
java.sql.SQLException: [Microsoft][Controlador ODBC Paradox] La operación no es compatible con una tabla Paradox sin clave principal.
Os dejo mi codigo, por si a alguien le interesa, funciona con tablas con claves primarias, sino no ahy tu tia, aver si alguien me puede hechar un cable
public class CBaseDeDatos
{
private java.sql.Connection conexión;
private java.sql.Statement sentenciaSQL;
private java.sql.ResultSet cdr; // conjunto de resultados
public CBaseDeDatos(String controlador, String URL_bd,
String usuario, String contraseña)
throws ClassNotFoundException, java.sql.SQLException,
InstantiationException, IllegalAccessException
{
// Cargar el controlador JDBC
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newI nstance();
// Conectar con la fuente de datos
conectar(URL_bd, usuario, contraseña);
}
private void conectar(String URL_bd, String usuario,
String contraseña) throws java.sql.SQLException
{
// Conectar con la BD
conexión = java.sql.DriverManager.getConnection(
"jdbc:odbc:tarragona", usuario, contraseña);
// Crear una sentencia SQL
sentenciaSQL = conexión.createStatement(
java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,
java.sql.ResultSet.CONCUR_UPDATABLE);
System.out.println("Conexión realizada con Exito.\n");
}
public void cerrarConexion() throws java.sql.SQLException
{
if (cdr != null) cdr.close();
if (sentenciaSQL != null) sentenciaSQL.close();
if (conexión != null) conexión.close();
}
public java.sql.ResultSet obtenerTabla(String tabla)
throws java.sql.SQLException
{
cdr = sentenciaSQL.executeQuery("SELECT * FROM " + tabla);
return cdr;
}
}
Probé a cambiar java.sql.ResultSet.CONCUR_UPDATABLE); por Read Only pero nada y también a quitarle los parámetros pero nada, haber si me podéis echar una mano un slaudo
Respuesta de Edw. N.
-1