eso uso driver ms sql server 2000
Código:
<%@ 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>");
%>
el ensaje de error es el siguiente:
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.