jdbc+sqlserver 2000

isct
06 de Septiembre del 2003
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.

jor
06 de Septiembre del 2003
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)

isct
06 de Septiembre del 2003
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!.

jamecaes
06 de Septiembre del 2003
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);

isct
06 de Septiembre del 2003
Muchas gracias pero hice lo que me dijiste y me sigue sin funcionar. No sé que pasa porque directamente en el analizador de consultas sí funciona.