Foros del Web » Programación para mayores de 30 ;) » Java »

access 2007 y java

Estas en el tema de access 2007 y java en el foro de Java en Foros del Web. hola amigos, tengo un problema, no se que es lo que esta pasando pero no puedo insertar datos a mi base de datos en access, ...
  #1 (permalink)  
Antiguo 04/11/2011, 21:43
 
Fecha de Ingreso: agosto-2010
Mensajes: 126
Antigüedad: 13 años, 8 meses
Puntos: 9
access 2007 y java

hola amigos, tengo un problema, no se que es lo que esta pasando pero no puedo insertar datos a mi base de datos en access, aqui le dejo mi código.

------------------------------------------------------------------
public class Consultas {


//mi método insertar, aqui esta el problema, no inserta nada, no me da ningun //error que es lo más grave


public static void ejecutar(String consulta) {
Connection conn =accesConextion.conectar();
System.out.println(consulta);
try {
Statement stmt = conn.createStatement();
stmt.executeUpdate(consulta);
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}



-------------------------------------------------------------------
// es es mi class conexion, funciona perfecto

public class accesConextion {
public static Connection con = null;
public accesConextion(){

}

public static Connection conectar(){
try {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:Driver={Microsoft Access Driver " + //"(*.mdb, *.accdb)};DBQ=D:\\db_dsa.accdb";
"(*.mdb, *.accdb)};DBQ=C:\\Database\\db_dsa.accdb";
con = (Connection) DriverManager.getConnection(url);
System.out.println("Connected!");
// con.close();
} catch (SQLException e) {
System.out.println("SQL Exception: "+ e.toString());
}
} catch (ClassNotFoundException cE) {
System.out.println("Class Not Found Exception: "+
cE.toString());
}
return con;
}

}


les agradesco a todos por tratar de ayuarme...!!
  #2 (permalink)  
Antiguo 05/11/2011, 02:48
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: access 2007 y java

Para que te puedan ayudar debes poner el texto de la excepcion y cual es la consulta que le pasas al método.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 05/11/2011, 07:48
 
Fecha de Ingreso: agosto-2010
Mensajes: 126
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: access 2007 y java

gracias y mil disculpa si es que no me puedo hacer entender:

ahora les paso todo el código.


Código PHP:
Ver original
  1. import java.sql.*;
  2.  
  3. public class Conexion {
  4.     public static Connection con = null;
  5.     public Conexion(){
  6.  
  7.     }
  8.  
  9.     public static Connection conectar(){
  10.         try {
  11.             try {
  12.                 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  13.                 String url = "jdbc:odbc:Driver={Microsoft Access Driver " + //"(*.mdb, *.accdb)};DBQ=D:\\db_dsa.accdb";
  14.                     "(*.mdb, *.accdb)};DBQ=C:\\Database\\db_dsa.accdb";
  15.                 con = (Connection) DriverManager.getConnection(url);
  16.                 System.out.println("Connected!");
  17. //                con.close();
  18.             } catch (SQLException e) {
  19.                  System.out.println("SQL Exception: "+ e.toString());
  20.             }
  21.         } catch (ClassNotFoundException cE) {
  22.             System.out.println("Class Not Found Exception: "+
  23.                 cE.toString());
  24.         }
  25.         return con;
  26.     }
  27. }
  28.  
  29. //-------------------------------------------------------------------
  30.  
  31. import java.sql.Connection;
  32. import java.sql.ResultSet;
  33. import java.sql.SQLException;
  34. import java.sql.Statement;
  35.  
  36. public class Ejecutor {
  37.  
  38.      public static void insertar(String consulta) {
  39.         Connection conn =Conexion.conectar();
  40. //        System.out.println(consulta);
  41.         try {
  42.             Statement stmt = conn.createStatement();
  43.             stmt.executeUpdate(consulta);
  44.             System.out.println("Ejecución satisfactoria..!! ");
  45. //            stmt.close();
  46.         } catch (SQLException e) {
  47.                 e.printStackTrace();
  48.         }
  49.     }
  50.  
  51.     public static Object getCodigo(String consulta) {
  52.         Object ob = null;
  53.         System.out.println(consulta);
  54.         Connection conn = (Connection) Conexion.conectar();
  55.         try {
  56.             Statement stmt = (Statement) conn.createStatement();
  57.             ResultSet res = stmt.executeQuery(consulta);
  58.             if(res.next())
  59.                 ob = res.getObject(1);
  60.             return ob;
  61.         } catch (SQLException e) {
  62.                 e.printStackTrace();
  63.         }
  64.         return null;
  65.     }
  66.  
  67. }
  68.  
  69. //-----------------------------------------------------------------------------------------
  70.  
  71. public class Productor {
  72.  
  73.     private int cod;
  74.     private String nombre;
  75.     private String ap_pat;
  76.     private String ap_mat;
  77.     private int ci;
  78.     private String direc;
  79.     private String tel;
  80.     private String mail;
  81.     private String rSocial;
  82.  
  83.     private String consulta = ";
  84.  
  85.    public Productor(int cod, String nombre, String ap_pat, String ap_mat, int ci, String direc, String tel, String mail, String rSocial) {
  86.        this.cod = cod;
  87.        this.nombre = nombre;
  88.        this.ap_pat = ap_pat;
  89.        this.ap_mat = ap_mat;
  90.        this.ci = ci;
  91.        this.direc = direc;
  92.        this.tel = tel;
  93.        this.mail = mail;
  94.        this.rSocial = rSocial;
  95.    }
  96.  
  97.    public void adicionar(){
  98.        consulta = "insert into productor     values("+cod+",'"+nombre+"','"+ap_pat+"','"+ap_mat+"',"+ci+",'"+direc+"','"+tel+"','"+mail+"','"+rSocial+"')";
  99.        Ejecutor.insertar(consulta);
  100.    }
  101.  
  102.    public boolean existe(int cod){
  103.        consulta = "select * from productor where id_prod="+cod;
  104.        return Ejecutor.getDato(consulta);
  105.    }
  106.  
  107.    public String name(int cod){
  108.        consulta = "select nombres from productor where id_prod="+cod;
  109.        return (String) Ejecutor.getCodigo(consulta);
  110.    }
  111.  
  112.  
  113.    public static void main(String[] args) {
  114.  
  115.        // aquí le mando todos los dato para que puedan ser insertado en la base de datos
  116.  
  117.        new Productor(101, "Fernando", "Corrales", "Peres", 6856668, "av/Brasi", "77010234",  "soy_asi@hotmail.com", "Ninguno").adicionar();
  118.  
  119.        // esta consulta funciona perfecto, envió  el código 104 y me devuelve el nombre de la persona
  120.  
  121.        System.out.println("La persona con el código 104 es :: " + String.valueOf(new   Productor().name(104)));
  122.     }
  123. }
como verán no me muestra ningún error, me sale el mensaje " Ejecución satisfactoria..!! ", pero en realidad no hace nada

Última edición por uagrm; 05/11/2011 a las 08:10
  #4 (permalink)  
Antiguo 05/11/2011, 09:09
 
Fecha de Ingreso: febrero-2006
Mensajes: 297
Antigüedad: 18 años, 2 meses
Puntos: 1
Respuesta: access 2007 y java

Hombre, no sé si habrá sido al copiarlo aqui, pero en esta linea:
private String consulta = ";

te falta cerrar las comillas.

Yo cuando hago el insert into pongo también los nombres de los campos de la tabla, si no tiene el mismo numero de parametros la consulta que los campos de la tabla, a lo mejor puede fallar!

INSERT INTO productor (cod, nombre, ap_pat, ap_mat, ci, direc, tel) VALUES("+cod+",'"+nombre+"','"+ap_pat+"','"+ap_mat +"',"+ci+",'"+direc+"','"+tel+"','"+mail+"','"+rSo cial+"')

Has comprobado que te conecte bien? te hace bien el resto de las consultas?

Si todo va bien en la aplicación, yo probaría a coger la sql y ponerle valores ficticios y ejecutarlo en access, a lo mejor el error está ahi!
  #5 (permalink)  
Antiguo 05/11/2011, 10:04
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: access 2007 y java

Tu conexión se cierra mal y demasiado rápido, pon esto

Cita:
stmt.executeUpdate(consulta);
System.out.println("Ejecución satisfactoria..!! ");
// stmt.close();
conn.close();
De todas formas, no debes crear una nueva conexión para cada consulta, crea una y utilízala para todas las consultas.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #6 (permalink)  
Antiguo 05/11/2011, 20:51
 
Fecha de Ingreso: agosto-2010
Mensajes: 126
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: access 2007 y java

gracias amigos, nunca me iba a dar cuenta el error que estaba cometiendo, pues tienes razon Xerelo no estaba cerrando la conexión, ahora todo bien ya funciona

Etiquetas: access, sql, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:38.