Problemas al utilizar el comando setfilter y filte

Tengo problemas al utilizar el comando setfilter y filter
El problema es el siguiente tengo una tabla cuya estructura es la siguiente:
|---------------------------
|Empleado
|---------------------------
|idemp (CHAR(20)
|apaterno (VARCHAR(30)
|amateno (VARCHAR(30)
|nombres (VARCHAR(50)
|---------------------------
Este es el codigo que utilizo para filtrar la data
string query;
query = ?apaterno='Armstrong' and amaterno='Cornelio' and nombres='Bruce'?;
dw_empleado.setfilter(query);
dw_empleado.filter();
Al final cuando ejecuto el código me sale un mensaje de true/false
podrías explicarme como puedo hacer el filtrado para el apellido paterno, materno y nombres
utilizando setfilter o otro comando
2

2 Respuestas

143.800 pts. Ingeniero en Sistemas con amplia experiencia en...
¿Qué mensaje te sale exactamente?
AldoB
Hola Aldob, el mensaje que me sale es el siguiente:
Expecting True/False expresion
intente crear un query de esta forma
query ="apaterno='Armstrong' and amaterno='Cornelio' and nombres='Bruce'";
como de esta otra
query ="apaterno like'%Armstrong' and amaterno like'%Cornelio' and nombres like'%Bruce'";
Y ninguna de las 2 me funciono siempre me sale el mismo mensaje
espero tu ayuda
Pone esto pare ver:
messagebox("1", dw_empleado.setfilter(query));
messagebox("2", dw_empleado.filter());
//para ver si lo esta setando bien
Ademas:
1. Verifica los tipos de datos de la bd y la dw
2. Proba hacer el filtro vos en modo diseño en el painter
3. Proba hacer un filtro más simple
4. Si usas variables fíjate si no se esta setando a NULO la expresión.
AldoB
Hola,
seguí tus recomendaciones y los resultados son los siguientes:
1. Probé con un filtro más simple
query ="apaterno like'%Armstrong'"
----->Si funciona
2.Probé con dos opciones
query ="apaterno like'%Armstrong' and amaterno like'%Cornelio'"
----->Realiza un retrieve a toda la tabla pero no funciona el filtrado y vuelve a salir el mensaje
3.Apropósito el query si trabaja en el SQLSERVER
4.Cuando realizo el filtrado en modo diseño si funciona de todas las formas con 1 o 2 opciones pero al momento de ultizar el setfilter no funciona
5.Parece que el problema es con setfilter
1. ¿La palabra query no la pones no?
2. Si con apaterno anda, proba con amaterno solo
3. ¿Qué version de pb tienes?
4. Proba poner el mismo filtro que en tiempo de diseño, sin usar variables.
Aldob
Hola,
1.Estoy trabajando con PB9
2.probe con apaterno y amaterno solo y funciona, el problema es cuando lo unes los dos
3.realize esto:
query ="apaterno like'%Armstrong'" o
query ="amaterno like'%Cornelio'"
messagebox("1",dw_empleado.setfilter(query));
messagebox("2",dw_empleado.filter());
y el resultado que me sale es 1, 1 respectivamente
PERO cuando hago esto :
query ="apaterno like'%Armstrong' and amaterno like'%Cornelio'";
el resultado es -1,1
como obsrevaras creo que esta es la razon por la que me sale el mensage
Expecting True/False expresion
3.probe el filtro en modo diseño y si funciona
4.me parece que el problema es al utilzar el 'like' ya que con '='
en otras palabras esto si funciona
query ="apaterno='Armstrong' and amaterno='Cornelio' and nombres='Bruce'"
esto no funciona
query ="apaterno like'%Armstrong%' and amaterno like'%Cornelio%' and nombres like'%Bruce%'"
5.Finalmente porque no utilizar '=' en ves de 'like' es que la búsqueda que quiero hacer es que el usuario va tecleado su apellidos y sus nombres esta se va filtrando
Estuve haciendo unas pruebas.
El problema es que no estas usando paréntesis:
query = "(apellido like 'bro%') and (nombre like 'al%')"
Esto debe andar. Al menos a mi me anda.

Tienes razón, con los paréntesis función correctamente.

Buen dato

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas