Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

[SOLUCIONADO] Actualizar tabla base de datos sql

Estas en el tema de Actualizar tabla base de datos sql en el foro de Bases de Datos General en Foros del Web. Hola a todos, Estoy haciendo un programa en java en el que necesito actualizar una tabla de sql. La actualizo sin problemas con la sentencia: ...
  #1 (permalink)  
Antiguo 11/07/2015, 11:15
 
Fecha de Ingreso: marzo-2006
Mensajes: 133
Antigüedad: 18 años, 9 meses
Puntos: 6
Actualizar tabla base de datos sql

Hola a todos,

Estoy haciendo un programa en java en el que necesito actualizar una tabla de sql. La actualizo sin problemas con la sentencia:
Código SQL:
Ver original
  1. UPDATE personas
  2. SET telefono='" + tlf + "', especialista='"+ esp + "'
  3. WHERE nombre='"+ nom +"' AND  dni='" + dni

Mi duda es...¿Y si los datos que le paso como nombre y dni no existen? ¿Como podría hacer que me detectara que no existen esos datos y me diera un error?

Ahora mismo me devuelve que se han actualizado los datos correctamente aunque estos no existieran en mi tabla.

No se si me explique muy bien...

Muchas gracias.

Última edición por gnzsoloyo; 11/07/2015 a las 18:46
  #2 (permalink)  
Antiguo 11/07/2015, 16:32
Avatar de carlitosMiranda  
Fecha de Ingreso: marzo-2015
Ubicación: Colombia
Mensajes: 32
Antigüedad: 9 años, 8 meses
Puntos: 1
Respuesta: Actualizar tabla base de datos sql

No obtienes ningun error, pues la sintaxis del codigo SQL es correcto, pero como no se cumplen las condiciones en el "where", es decir, no hay registros en tu base de datos q tengan los valores de 'nombre' y 'dni', simplemente ninguna fila queda afectada.
Si quieres mostrar un error donde diga que los datos de 'nombre' y 'dni' no existen tendrias q personalizarlo tu mismo.
Podrias crear, ummm, no se, algun metodo llamado 'hayRegistrosCon' en java q reciba como parametros 2 valores (nombre y dni). hayRegistronCon(String nb, String dni) y realizando una consulta SQL, devuelva 'true' en caso de q existe al menos un registro con los 2 datos recibidos. Y 'false' en caso contrario.
La consulta podria ser asi: "select tu_columna from tu_tabla where nombre='"+nb+"' and dni='"+dni+"'".
Y con el resultado puedes usar algun metodo sql de java (si existe) q te diga cuantos registros hay. Esa cantidad la guardas en alguna variable tipo int llamada 'numFilas' y el metodo podria retornar algo como esto: return numFilas > 0;
Espero te sirva. Saludos.
  #3 (permalink)  
Antiguo 11/07/2015, 18:48
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Actualizar tabla base de datos sql

Cita:
Mi duda es...¿Y si los datos que le paso como nombre y dni no existen? ¿Como podría hacer que me detectara que no existen esos datos y me diera un error?
Usualmente los conectores que usas para acceder a la base de datos desde la aplicación pueden leer un resultado que el DBMS obtiene internamente en ese caso y que representa la cantidad de registros afectados por la última sentencia de modificación (INSERT, UPDATE o DELETE).
Cuando ese resultado es cero, significa que no se insertó, actualizóo borró nada, por lo que puedes deducir que hay algún problema con las condiciones.
Dependerá, pues, del lenguaje de programación usado y el conector a la base cuál sea esa función.

Lo que en realidad se suele hacer, si quieres aprender a programar bien, es SIEMPRE validar si los datos son correctos por medio de una busqueda simple con SELECT, y sólo hacer ese UPDATE cuando realmente se valide que existen datos modificables.

Es decir que primero haces:
Código SQL:
Ver original
  1. SELECT COUNT(*) existe
  2. FROM personas
  3. WHERE nombre='"+ nom +"' AND  dni='" + dni
y recién si el resultaod de eso es 1, haces el UPDATE.

Eso, si quieres programar correctamente.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 11/07/2015, 20:13
Avatar de carlitosMiranda  
Fecha de Ingreso: marzo-2015
Ubicación: Colombia
Mensajes: 32
Antigüedad: 9 años, 8 meses
Puntos: 1
Respuesta: Actualizar tabla base de datos sql

Me parece excelente tu propuesta. Es mas directo hacerlo asi. Creo q tendre q hacer cambios a mis codigos SQL. Jaja
Saludos.
  #5 (permalink)  
Antiguo 13/07/2015, 14:34
 
Fecha de Ingreso: marzo-2006
Mensajes: 133
Antigüedad: 18 años, 9 meses
Puntos: 6
Respuesta: Actualizar tabla base de datos sql

Muchas gracias a los dos, me funciono perfectamente como gnzsoloyo lo explico!!

Etiquetas: sql, tabla
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 04:12.