Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/06/2014, 12:02
rodo593
 
Fecha de Ingreso: agosto-2013
Mensajes: 90
Antigüedad: 10 años, 8 meses
Puntos: 1
[Consulta] SqLite crear tabla si no existe

Hola amigos.

Tengo un problema con un método que estoy utilizando.

Aquí dejo el código:
Código Java:
Ver original
  1. private void crearTabla() {
  2.         Statement crearTabla = null;
  3.        
  4.         String tabla = "CREATE TABLE IF NOT EXISTS Usuarios ("
  5.                 + "_id INTEGER PRIMARY KEY," + "admin INTEGER,"
  6.                 + "userID VARCHAR NOT NULL," + "pass VARCHAR NOT NULL,"
  7.                 + "nombre VARCHAR NOT NULL," + "apellido1 VARCHAR NOT NULL,"
  8.                 + "apellido2 VARCHAR NOT NULL," + "email VARCHAR NOT NULL"
  9.                 + ");";
  10.        
  11.         try {
  12.             crearTabla = conexion.createStatement();
  13.             int tablaCreada = crearTabla.executeUpdate(tabla);
  14.             System.out.println(tablaCreada);
  15.             if (tablaCreada == 0) {
  16.                 String admin = "INSERT INTO Usuarios "
  17.                         + "(admin, userID, pass, nombre, apellido1, apellido2, email)"
  18.                         + "VALUES (" + "1," + "'admin'," + "'123',"
  19.                         + "'nombre'," + "'apellido1'," + "'apellido2',"
  20.                         + "'email'" + ");";
  21.                 crearTabla.executeUpdate(admin);
  22.             }
  23.            
  24.             crearTabla.close();
  25.  
  26.         } catch (SQLException sqlex) {
  27.             System.err.print("Error # 3");
  28.             System.out.println("Imposible crear la tabla");
  29.            
  30.         } finally {
  31.  
  32.             try {
  33.                 if ( conexion == null ){
  34.                     conexion.close();
  35.                 }
  36.  
  37.             } catch (SQLException sqlex) {
  38.                 sqlex.printStackTrace();
  39.             }
  40.  
  41.         }
  42.     }

En la parte int tablaCreada = crearTabla.executeUpdate(tabla);
Creía que si creaba la tabla (si esta no existia) me retornaba 0, y si no creaba la tabla porque ya existe me retornaba -1.

El detalle es que siempre me retorna 0, he borrado la db varias veces para probar y si, aunque exista o no me retorna 0.
Obviamente si me retorna siempre 0, siempre se crea el user.

Gracias por la ayuda.

Saludos.