SQL Server - Buscar una cadena con parte de ella

   
Vista:

Buscar una cadena con parte de ella

Publicado por Moly (6 intervenciones) el 24/10/2008 18:57:16
Hola a todos, denuevo por aqui en el foro, pero ahora con otro problemilla:
estoy trabajando java con jbuilder y de base de datos SQL. Lo q necesito es seleccionar un registro de la bd buscando parte de un dato es decir....

q la JdbTable muestre-->
pepe ramirez 25 estudiante Los capulis 545 etc etc

cuando hago una busqueda con la siguiente consulta-->
consulta ="select * from alumnos where nombre like ' % " +xxx+" % ' "

donde xxx=txt1.gettext(); // ingresado por pantalla.

Creo q el error es como uso el like??? xq no me da el registro q necesito, peor me dice q no existe ese dato en la bd? normalmente uso la sentencia "select * from alumnos where nombre=?" pero ahora nose como hacer con el like? o como debo mandarle la variable xxx o si debe enviar el ?.....
Porsiacaso les escribo el codigo q sigue a lo anterior mas o menos para q me deje comprender mejor.....
Luego la variable consulta la envio a una funcion algo asi :dx=sqlp.buscar(busqueda,nomb,lugar);
donde la funcion buscar es esta:
static public Vector buscar(String sql,String buscar,int posicion){
Vector regs = new Vector();
try{
Conecta db = new Conecta();
Connection cn = db.getConnection();
if(cn == null){
regs = null;
}else{
PreparedStatement ps = cn.prepareStatement(sql);
ps.setString(posicion,buscar);
ResultSet rs = ps.executeQuery();
ResultSetMetaData rm = rs.getMetaData();
int numCols = rm.getColumnCount();
while(rs.next()){
for(int i = 0; i<numCols;i++){
regs.addElement(rs.getString(i+1));
}//fin for
}//fin while
rs.close(); ps.close(); cn.close();
//return regs;
}// fin else
}catch(SQLException e){
System.out.println("Error en la búsqueda (SQLException)");
regs = null;
}catch(Exception e){
System.out.println("Error en la búsqueda (Exception)");
regs = null;
}
return regs;
}

Muchas Gracias por adelantado espero me ayuden....byeeeeeeeeeeeeeee
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Buscar una cadena con parte de ella

Publicado por pacopaz (131 intervenciones) el 24/10/2008 19:56:49
Creo que el problema está aqui:
consulta ="select * from alumnos where nombre like ' % " +xxx+" % ' "

Elimina los espacios alrededor del signo de porcentaje (%) para que quede así:
consulta ="select * from alumnos where nombre like '%" +xxx+"%' "

Espero que te sirva.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Buscar una cadena con parte de ella

Publicado por Moly (6 intervenciones) el 24/10/2008 22:48:58
HOla gracias por responder, pero mi sentencia esta bien es decir la hice como tu me indicas....lo q pasa es q para q se vea mejor mi nota en el foro, separe las comillas , los parentesis, etc....
espero me ayuden :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Buscar una cadena con parte de ella

Publicado por jose camilo (21 intervenciones) el 07/11/2008 18:40:10
consulta ="select * from alumnos where nombre like ' % " +XXX+" % ' "

lo haria de esta manera
Wtemp = '%'+XXX+'%' notas le agrege otra comilla

consulta ="select * from alumnos where nombre like ?Wtemp"

por lo menos asi funciona en vfp9
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Buscar una cadena con parte de ella

Publicado por Omarinho (1 intervención) el 07/06/2011 17:54:36
"select * from alumnos where nombre like ' %XXX% ' "
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Buscar una cadena con parte de ella

Publicado por Omarinho (1 intervención) el 07/06/2011 17:56:11
No se si es lok necesitas,pero checala asi.-
select * from alumnos where nombre like '%XXX%'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar