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
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


0