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

Error en sintaxis SQL netbeans

Estas en el tema de Error en sintaxis SQL netbeans en el foro de Java en Foros del Web. Hola una consulta, tengo una clase alumno que hereda atributos de una clase persona, la cosa es que al insertar un alumno quiero asignarle un ...
  #1 (permalink)  
Antiguo 08/02/2016, 19:30
 
Fecha de Ingreso: febrero-2016
Ubicación: Tafi Viejo-Tucumán
Mensajes: 6
Antigüedad: 8 años, 2 meses
Puntos: 0
Error en sintaxis SQL netbeans

Hola una consulta, tengo una clase alumno que hereda atributos de una clase persona, la cosa es que al insertar un alumno quiero asignarle un tutor que ya lo tengo que base de datos se puede? porque me tira un error

You have an error in your SQL syntax; chek the manual that corresponds to your MariaDB server version for the right syntax to use near 'p inner join alumno a on p.idpersona=a.idpersona where num_documento like '%%' o' at line 1

esta es la sintaxis de mi función

public DefaultTableModel mostrar(String buscar) {
DefaultTableModel modelo;

String[] titulos = {"ID", "Nombre", "Apellido", "Número Documento", "Fecha Nacimiento", "Edad", "Domicilio", "Barrio", "Localidad", "idtutor", "Tutor", "Escuela","Grado", "División","Sobreedad", "Repitencia"};

String[] registro = new String[16];

totalregistros = 0;
modelo = new DefaultTableModel(null, titulos);

sSQL = "select p.idpersona,p.nombre,p.apellido,p.num_documento,p. fecha_nacimiento,p.edad,"
+ "p.domicilio,p.barrio,p.localidad,a.idtutor,"+
"(select nombre from persona where p.idpersona=a.idtutor)as alumnon,"+
"(select apellido from persona where p.idpersona=a.idtutor)as alumnoa,"+
"a.escuela,a.grado,a.division,a.sobreedad,a.repite ncia"+
"from persona p inner join alumno a"+
" on p.idpersona=a.idpersona where num_documento like '%"
+ buscar + "%' order by idpersona desc";
try {
Statement st = cn.createStatement();
ResultSet rs = st.executeQuery(sSQL);

while (rs.next()) {
registro[0] = rs.getString("idpersona");
registro[1] = rs.getString("nombre");
registro[2] = rs.getString("apellido");
registro[3] = rs.getString("num_documento");
registro[4] = rs.getString("fecha_nacimiento");
registro[5] = rs.getString("edad");
registro[6] = rs.getString("domicilio");
registro[7] = rs.getString("barrio");
registro[8] = rs.getString("localidad");
registro[9] = rs.getString("idtutor");
registro [10]=rs.getString("alumnon") + " " + rs.getString("alumnoa") ;
registro[11] = rs.getString("escuela");
registro[12] = rs.getString("grado");
registro[13] = rs.getString("division");
registro[14] = rs.getString("sobreedad");
registro[15] = rs.getString("repitencia");

totalregistros = totalregistros + 1;
modelo.addRow(registro);

}
return modelo;

} catch (Exception e) {
JOptionPane.showConfirmDialog(null, e);
return null;
}

}

Gracias.
  #2 (permalink)  
Antiguo 10/02/2016, 06:19
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Error en sintaxis SQL netbeans

Buenas,

Por favor, utiliza la utilidad Highlight para hacer tu codigo legible:



Tienes errores porque la cadena SQL que estas construyendo no es correcta.
Para empezar, no estas dejando espacios entre una linea y la otra.

Por ejemplo esto:
"a.escuela,a.grado,a.division,a.sobreedad,a.repite ncia"+
"from persona p inner join alumno a"+


Genera la cadena:
a.escuela,a.grado,a.division,a.sobreedad,a.repiten ciafrom persona p inner join alumno a

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #3 (permalink)  
Antiguo 10/02/2016, 09:03
 
Fecha de Ingreso: febrero-2016
Ubicación: Tafi Viejo-Tucumán
Mensajes: 6
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Error en sintaxis SQL netbeans

Gracias por el consejo sobre el código legible, y más por la sintáxis de la cadena de SQL ya me funcionó. Gracias por tu tiempo.

Etiquetas: clase, netbeans, sintaxis, 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 02:09.