Código:
el ensaje de error es el siguiente:<%@ page import="java.io.*,java.util.*,java.net.*,java.sql.*" %> <% if(request.getParameter("GRABAR") != null) { // objetos de enlace Connection canal = null; //ResultSet tabla= null; String host = "aguzman"; String db = "prueba"; int puerto = 1433; Statement instruccion=null; String usuario = "aguzman"; String contrasenia ="zsamer"; String strcon = "jdbc:microsoft:sqlserver://"+ host +":"+ puerto +";DatabaseName="+db+";"; // abriendo canal o enlace en su propio try-catch try { Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); canal=DriverManager.getConnection(strcon, usuario, contrasenia); instruccion = canal.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); } catch(java.lang.ClassNotFoundException e){} catch(SQLException e) {}; //cargando los campos a grabar // excepto clave porque en mysql es de tipo auto-increment String userid =request.getParameter("userid"); String nombre =request.getParameter("nombre"); String apaterno =request.getParameter("apaterno"); String q="insert into cliente(userid,nombre,apaterno) values(\"" +userid+"\","+nombre+","+apaterno+"); "; try { // agregando renglon (insert) int n=instruccion.executeUpdate(q); //avisando que se hizo la instruccion out.println("REGISTRO INSERTADO"); } catch(SQLException e) {out.println(e);}; try{ // tabla.close(); instruccion.close(); canal.close(); } catch(SQLException e) {out.println(e);}; }; // construyendo forma dinamica out.println("<FORM ACTION=insert.jsp METHOD=post>"); out.println("Usuario :<INPUT TYPE=TEXT NAME=userid><BR>"); out.println("Nombre :<INPUT TYPE=TEXT NAME=nombre><BR>"); out.println("Apellido:<INPUT TYPE=TEXT NAME=apaterno><BR>"); out.println("<INPUT TYPE=SUBMIT NAME=GRABAR VALUE=INSERTAR ><BR>"); out.println("</FORM>"); %>
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]El nombre 'xxxx' no es válido en este contexto. Sólo se permiten constantes, expresiones o variables. No se permiten nombres de columna.