jdbc+sqlserver 2000
Hola a todos. Tengo un problema , a ver si alguien que se haya encontrado con lo mismo me puede ayudar.
Estoy trabajando con JSP y servlets con Bases de datos, para ello tengo instalado jbuilder8 y sqlserver 2000.
Para conectarme a la BD cargo el siguiente driver:
"sun.jdbc.odbc.JdbcOdbcDriver"
La conexión a la BD la realiza bien y puedo ver los registros. Pero si ejecuto una SELECT con la cláusula LIKE no funciona. No sé si lo hago correctamente , por ejemplo:
sel = "select * from mitabla where usuario like ? ";
pstmt = con.prepareStatement(sel);
String usuario = "p";
String palabra = "'%" + usuario + "%'";
pstmt.setString(1, palabra);
rs = pstmt.executeQuery();
while (rs.next()) {
....
La sentencia no devuelve filas haciéndolo así, pero si la ejecuto directamente en el analizador de consultas de SQL server funciona bien y me devuelve las filas que corresponden.
Pienso que puede ser el driver , pero no estoy segura ¿me podéis ayudar?
Gracias.
Estoy trabajando con JSP y servlets con Bases de datos, para ello tengo instalado jbuilder8 y sqlserver 2000.
Para conectarme a la BD cargo el siguiente driver:
"sun.jdbc.odbc.JdbcOdbcDriver"
La conexión a la BD la realiza bien y puedo ver los registros. Pero si ejecuto una SELECT con la cláusula LIKE no funciona. No sé si lo hago correctamente , por ejemplo:
sel = "select * from mitabla where usuario like ? ";
pstmt = con.prepareStatement(sel);
String usuario = "p";
String palabra = "'%" + usuario + "%'";
pstmt.setString(1, palabra);
rs = pstmt.executeQuery();
while (rs.next()) {
....
La sentencia no devuelve filas haciéndolo así, pero si la ejecuto directamente en el analizador de consultas de SQL server funciona bien y me devuelve las filas que corresponden.
Pienso que puede ser el driver , pero no estoy segura ¿me podéis ayudar?
Gracias.
prueba a ponerlo a capón a ver que tal...
String usuario="p";
sel = "select * from mitabla where usuario like '%"+ usuario +"%'";
(y quita el setString, claro)
String usuario="p";
sel = "select * from mitabla where usuario like '%"+ usuario +"%'";
(y quita el setString, claro)
Pues así sí me funciona!!
Lo otro no lo entiendo, que parece que es culpa del setString, sigo sin tener ni idea.
Instalé el SP3 del SQL server y el SP1 del jbdc para SQL Server por si acaso, pero tampoco me fue bien.
Lo haré así como me dices.
Muchas gracias!.
Lo otro no lo entiendo, que parece que es culpa del setString, sigo sin tener ni idea.
Instalé el SP3 del SQL server y el SP1 del jbdc para SQL Server por si acaso, pero tampoco me fue bien.
Lo haré así como me dices.
Muchas gracias!.
veo que cuando le envias el parametro a la consulta le añadis comilla simple, quitasela y deja solo los porcentajes!!!
String palabra = "%" + usuario + "%";
pstmt.setString(1, palabra);
String palabra = "%" + usuario + "%";
pstmt.setString(1, palabra);